服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - ASP.NET教程 - Asp.net获取客户端IP常见代码存在的伪造IP问题探讨

Asp.net获取客户端IP常见代码存在的伪造IP问题探讨

2019-11-12 13:49asp.net教程网 ASP.NET教程

如果某个网站是通过下面的代码获取IP,那么我们只要在Header里随意设置HTTP_VIA和X_FORWARDED_FOR,就可以达到伪造IP的目的

在网卡随便一搜: 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也是可以伪造的,但是会造成无法正常接收数据,好比写信时,发件人写假地址,那当然不可能收到对方的回复了

延伸 · 阅读

精彩推荐