Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
2013-06-28 00:00
639 查看
在网卡随便一搜: Asp.net 客户端IP
可以搜索到很多页面,提供的代码基本都类似于:
上述代码里的HTTP_VIA和HTTP_X_FORWARDED_FOR,都是从客户端提交的Header里获取的,而在正常的HTTP交互中,REMOTE_ADDR是无法伪造的(注),
所以如果某个网站是通过上面的代码获取IP,那么我们只要在Header里随意设置HTTP_VIA和X_FORWARDED_FOR,就可以达到伪造IP的目的,可以使用FireFox的插件“Modify Headers”来测试,用它添加Header
注:实际上,REMOTE_ADDR也是可以伪造的,但是会造成无法正常接收数据,好比写信时,发件人写假地址,那当然不可能收到对方的回复了
可以搜索到很多页面,提供的代码基本都类似于:
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也是可以伪造的,但是会造成无法正常接收数据,好比写信时,发件人写假地址,那当然不可能收到对方的回复了
相关文章推荐
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- Asp.net获取客户端IP常见代码存在的问题:伪造IP
- ASP.NET获取客户端IP/用户名等信息
- ASP.NET获取客户端IP/用户名等信息
- ASP.NET获取客户端IP/用户名等信息
- ASP.NET获取客户端IP及MAC地址
- asp.net 获取客户端IP与mac
- ASP.NET获取客户端IP和MAC
- ASP.NET,C#获取客户端IP
- Asp.net关于获取客户端CPU,硬盘,MAC序列号的问题
- ASP.NET获取客户端IP及MAC地址
- ASP.NET获取客户端IP/用户名等信息
- ASP.NET获取客户端IP及MAC地址
- asp.net 获取客户端真实Ip
- [Asp.Net]获取客户端ip和mac地址
- ASP.NET----获取客户端浏览器信息,获取服务器端主机名和 IP
- asp.net中SqlDataReader获取数据存在的问题解决方法
- 如何解决ASP.NET下载时的中文文件名乱码,与TXT文件中存在代码两个问题
- ASP.NET获取客户端IP及MAC地址
- asp.net 获取客户端IP与mac