熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

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

2013-11-13 10:39:43  來源: .NET編程 
如果某個網站是通過下面的代碼獲取IP那麼我們只要在Header裡隨意設置HTTP_VIA和X_FORWARDED_FOR就可以達到偽造IP的目的  

  在網卡隨便一搜: Aspnet 客戶端IP
可以搜索到很多頁面提供的代碼基本都類似於

復制代碼 代碼如下:
if (RequestServerVariables["HTTP_VIA"] != null)
return RequestServerVariables["HTTP_X_FORWARDED_FOR"]Split(new char[] { })[];
else
return RequestServerVariables["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也是可以偽造的但是會造成無法正常接收數據好比寫信時發件人寫假地址那當然不可能收到對方的回復了


From:http://tw.wingwit.com/Article/program/net/201311/14247.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.