Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
程序员文章站
2024-02-29 15:57:22
在网卡随便一搜: asp.net 客户端ip 可以搜索到很多页面,提供的代码基本都类似于: 复制代码 代码如下: if (request.servervariables["...
在网卡随便一搜: 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也是可以伪造的,但是会造成无法正常接收数据,好比写信时,发件人写假地址,那当然不可能收到对方的回复了
可以搜索到很多页面,提供的代码基本都类似于:
复制代码 代码如下:
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也是可以伪造的,但是会造成无法正常接收数据,好比写信时,发件人写假地址,那当然不可能收到对方的回复了
上一篇: 新建一个MySQL数据库的简单教程