Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
更新時(shí)間:2013年06月28日 16:34:50 作者:
如果某個(gè)網(wǎng)站是通過(guò)下面的代碼獲取IP,那么我們只要在Header里隨意設(shè)置HTTP_VIA和X_FORWARDED_FOR,就可以達(dá)到偽造IP的目的
在網(wǎng)卡隨便一搜: Asp.net 客戶端IP
可以搜索到很多頁(yè)面,提供的代碼基本都類似于:
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是無(wú)法偽造的(注),
所以如果某個(gè)網(wǎng)站是通過(guò)上面的代碼獲取IP,那么我們只要在Header里隨意設(shè)置HTTP_VIA和X_FORWARDED_FOR,就可以達(dá)到偽造IP的目的,可以使用FireFox的插件“Modify Headers”來(lái)測(cè)試,用它添加Header
注:實(shí)際上,REMOTE_ADDR也是可以偽造的,但是會(huì)造成無(wú)法正常接收數(shù)據(jù),好比寫(xiě)信時(shí),發(fā)件人寫(xiě)假地址,那當(dāng)然不可能收到對(duì)方的回復(fù)了
可以搜索到很多頁(yè)面,提供的代碼基本都類似于:
復(fù)制代碼 代碼如下:
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是無(wú)法偽造的(注),
所以如果某個(gè)網(wǎng)站是通過(guò)上面的代碼獲取IP,那么我們只要在Header里隨意設(shè)置HTTP_VIA和X_FORWARDED_FOR,就可以達(dá)到偽造IP的目的,可以使用FireFox的插件“Modify Headers”來(lái)測(cè)試,用它添加Header
注:實(shí)際上,REMOTE_ADDR也是可以偽造的,但是會(huì)造成無(wú)法正常接收數(shù)據(jù),好比寫(xiě)信時(shí),發(fā)件人寫(xiě)假地址,那當(dāng)然不可能收到對(duì)方的回復(fù)了
相關(guān)文章
Elasticsearch.Net使用入門(mén)教程(1)
這篇文章主要為大家詳細(xì)介紹了Elasticsearch.Net使用入門(mén)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Convert.ToInt32與Int32.Parse區(qū)別及Int32.TryParse
2個(gè)方法都可以把string轉(zhuǎn)換為int,那么他們有什么區(qū)別?什么時(shí)候該用什么?性能如何。 其實(shí)在2.0里還有Int32.TryParse也實(shí)現(xiàn)了同樣的效果。2009-01-01一個(gè)完整的ASP.NET 2.0 URL重寫(xiě)方案[翻譯]
這篇文章描述了一個(gè)完整的 ASP.NET 2.0 URL 重寫(xiě)方案。這個(gè)方案使用正則表達(dá)式來(lái)定義重寫(xiě)規(guī)則并解決通過(guò)虛擬 URLs 訪問(wèn)頁(yè)面產(chǎn)生回發(fā)事件的一些可能的困難。2009-11-11asp.net分頁(yè)控件使用詳解【附實(shí)例下載】
本篇文章主要對(duì)asp.net創(chuàng)建事務(wù)的方法進(jìn)行實(shí)例介紹,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12白刃之戰(zhàn):PHP vs. ASP.NET(節(jié)選)-架構(gòu)比較
白刃之戰(zhàn):PHP vs. ASP.NET(節(jié)選)-架構(gòu)比較...2006-09-09ASP.NET Core程序發(fā)布到Linux生產(chǎn)環(huán)境詳解
這篇文章主要為大家詳細(xì)介紹了ASP.NET Core程序發(fā)布到Linux生產(chǎn)環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04