您现在的位置是:网站首页> 编程资料编程资料
Asp.net获取客户端IP常见代码存在的伪造IP问题探讨_实用技巧_
2023-05-24
213人已围观
简介 Asp.net获取客户端IP常见代码存在的伪造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也是可以伪造的,但是会造成无法正常接收数据,好比写信时,发件人写假地址,那当然不可能收到对方的回复了
可以搜索到很多页面,提供的代码基本都类似于:
复制代码 代码如下:
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 无刷新文件上传并显示进度条的实现方法及思路_实用技巧_
- HTTP错误500.19解决方法(定义了重复的节点)_实用技巧_
- Gridview用法大总结(全程图解珍藏版)_实用技巧_
- asp.net中javascript的引用(直接引入和间接引入)_实用技巧_
- DataGridView - DataGridViewCheckBoxCell的使用介绍_实用技巧_
- 三层+存储过程实现分页示例代码_实用技巧_
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)_实用技巧_
- asp.net页面传值测试实例代码(前后台)_实用技巧_
- asp.net后台cs中的JSON格式变量在前台Js中调用方法(前后台示例代码)_实用技巧_
- 设置ASP.NET页面不被缓存(客户端/服务器端取消缓存方法)_实用技巧_
