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

如果某个网站是通过下面的代码获取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也是可以伪造的,但是会造成无法正常接收数据,好比写信时,发件人写假地址,那当然不可能收到对方的回复了

时间: 2024-09-10 06:22:07

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

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["RE

ASP.Net获取客户端网卡MAC的小例子

这篇文章介绍了ASP.Net获取客户端网卡MAC的小例子,有需要的朋友可以参考一下   复制代码 代码如下: using System.Text.RegularExpressions; using System.Diagnostics; public class test {         public test         {}         public static string GetCustomerMac(string IP) //para IP is the clients

asp.net获取客户端浏览器及主机信息

原文:asp.net获取客户端浏览器及主机信息 在线预览效果:http://tool.hovertree.com/info/client/ 其中aspx页面的控件代码: <asp:ListBox runat="server" ID="lbHoverTreeInfo" ClientIDMode="Static"> </asp:ListBox> 以下是实现代码: 1 using System; 2 using System.W

获取qq号-求访问web的时候获取客户端qq号代码

问题描述 求访问web的时候获取客户端qq号代码 求访问web的时候获取客户端qq号代码 比如访问www.baidu.com的时候 他服务器就自动获取所有访问这个地址的qq号码 可以是js 也可以是asp.net 谢谢大家了

ASP.NET获取客户端的域用户的登入账户名

问题描述 ASP.NET获取客户端的域用户的登入账户名,电脑室加入域的,登入的时候都需要用账户登入,然后问题是System.Environment.UserName这个我把网站部署到IIS7+sever2008上,获取的都是服务器上的用户名,什么情况,如何获取这个人打开网页就获取到这个人登入的域账户名.有代码贴下,我实在找不到了,跪求,给跪了!!!! 解决方案 解决方案二:友情帮顶解决方案三:怎么解决...........

ASP.NET获取客户端及服务器信息方法总结

  1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostName 获取客户端电脑IP:Page.Request.UserHostAddress 2. 在网络编程中的通用方法: 获取当前电脑名:static System.Net.Dns.GetHostName() 根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电

PHP获取客户端操作系统,浏览器,语言,IP,IP归属地等

<?php class Client { ////获得访客浏览器类型 function Get_Browser(){ if(!empty($_SERVER['HTTP_USER_AGENT'])){ $br = $_SERVER['HTTP_USER_AGENT']; if (preg_match('/MSIE/i',$br)) { $br = 'MSIE'; } elseif (preg_match('/Firefox/i',$br)) { $br = 'Firefox'; } elseif

ASP如何获取客户端真实IP地址

ip地址|客户端 在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址.要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取.不过要注意的事,并不是每个代理服务器都能用 Request.ServerVar

在ASP中获取客户端MAC地址的方法

客户端 本程序属于一种特别的方法.使用范围比较有限,而且有一定的危险性.借鉴了asp后门里的一些方法.下面是程序代码. <%dim remoteaddrif Request.ServerVariables("HTTP_X_FORWARDED_FOR")=empty thenremoteaddr=Request.ServerVariables("REMOTE_ADDR")elseremoteaddr=Request.ServerVariables("H