程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討

Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討

編輯:ASP.NET基礎
在網卡隨便一搜: Asp.net 客戶端IP
可以搜索到很多頁面,提供的代碼基本都類似於:
復制代碼 代碼如下:
if (Request.ServerVariables["HTTP_VIA"] != null)
return Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(new char[] { ',' })[0];
else
return Request.ServerVariables["REMOTE_ADDR"];

上述代碼裡的HTTP_VIA和HTTP_X_FORWARDED_FOR,都是從客戶端提交的Header裡獲取的,而在正常的HTTP交互中,REMOTE_ADDR是無法偽造的(注),

所以如果某個網站是通過上面的代碼獲取IP,那麼我們只要在Header裡隨意設置HTTP_VIA和X_FORWARDED_FOR,就可以達到偽造IP的目的,可以使用FireFox的插件“Modify Headers”來測試,用它添加Header

注:實際上,REMOTE_ADDR也是可以偽造的,但是會造成無法正常接收數據,好比寫信時,發件人寫假地址,那當然不可能收到對方的回復了
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved