是否有可能欺骗HttpRequest.UserHostAddress(REMOTE_ADDR)?

时间:2011-05-31 15:41:43

标签: asp.net security iis

作为保护Web应用程序的附加措施,我正在考虑实施客户端IP白名单。

首选方式似乎是:在路由器上执行此操作。但是,在我的方案中,这是一个重要的管理负担。

我想在网络服务器上的软件中执行此操作。有没有理由说这不太安全?

2 个答案:

答案 0 :(得分:2)

从最终用户发送到您服务器的http请求中的源IP号检索HttpRequest.UserHostAddress。 http请求分为几个ip包,源ip号是每个ip包中的一个字段。网上的任何人都可以在源字段中使用任何IP号码创建ip数据包并将其发送给您。

然而,这种做法在某种程度上受到限制。当您响应http请求时,响应将发送到请求中的源IP号。攻击者除非能够在前往接收者的路上拦截响应,否则不会收到响应。例如:如果攻击者向您发送带有用户名和密码的登录请求,那么您可能会回复cookie。但由于cookie被发送到假源ip,攻击者永远不会看到它。

IP欺骗在技术上并不困难,但由于攻击者不会收到响应,因此它主要用于可以通过单个请求完成的攻击。

路由器和防火墙还可以保护您免受恶意源IP包的恶意IP数据包的攻击。大多数防火墙将使用来自内部网络的源IP阻止来自外部网络的数据包。

答案 1 :(得分:1)

路由器级别的客户端IP白名单是为了使流量远离网络,因为如果主机不是来自正确的邻居,则不希望主机与您的服务器通信。这可以保护服务器免受任何只需要访问网络堆栈的操作系统级攻击。

您实际谈论的是使用IP白名单作为服务器身份验证的另一个因素。它无法帮助您抵御遭受正确攻击的黑客,因为未经授权的客户端仍然能够在网络堆栈级别访问您的服务器。

这两种方法都容易受到IP欺骗的影响,防范这种方法是您的网络团队的责任。在正确安全的网络上,您无需过多担心恶意欺骗。

因此,从安全角度来看,使用客户端IP白名单并没有什么坏处,但最终,您可能会浪费时间来维护ACL。如果您想控制哪些主机可以连接到您的应用程序以限制您的安全配置文件,则可以使用防火墙或至少一个路由器访问列表。

编辑:操作系统级别的防火墙也是您应该考虑的选择,如果路由&切换变化对你的情况来说太麻烦了。


回应评论:防火墙白名单会更安全,因为它可以防御操作系统级别的攻击。<​​/ p>

如果您不关心操作系统级别的攻击,那么该部分并不重要,最终的答案是肯定的,欺骗攻击是可能的,不,你无法从IIS或ASP.NET中做到这一点。

因此,我仍然可以得出结论,这可能是浪费您的时间和需要等待添加到白名单的用户的时间。但从安全角度来看,它可能不会对您造成伤害,并可能使一些攻击者无法将您的服务器分析为软目标。