asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

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


发布日期:2019年03月20日
 
Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
如果某个网站是通过下面的代码获取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也是可以伪造的但是会造成无法正常接收数据好比写信时发件人写假地址那当然不可能收到对方的回复了

               

上一篇:ASP.NET生成eurl.axd Http异常错误

下一篇:asp.net使用代码从文件夹里读取图片