2011-05-31 31 views
3

作为一个额外措施,以保护一个Web应用程序,我正在考虑实施客户端IP白名单。是否可以欺骗HttpRequest.UserHostAddress(REMOTE_ADDR)?

首选的方法似乎是:在路由器上执行此操作。但是,在我的情况下,这是一个重大的管理负担。

我想在软件上,在网络服务器上做到这一点。有没有理由为什么这不安全?

回答

1

在路由器级别将客户端IP列入白名单是为了将流量保留在网络外部,因为如果主机不在正确的邻居范围内,您不希望主机与您的服务器通信。这可以保护服务器免受任何数量的只需要访问网络堆栈的操作系统级别的攻击。

你实际上正在谈论的是使用IP白名单作为服务器上验证的另一个因素。它不会帮助您抵御黑客的攻击,因为未经授权的客户端仍然能够在网络堆栈层访问您的服务器。

这两种方法都容易受到IP欺骗,并且防范这是网络团队的责任。在适当的安全网络上,您不必过分担心恶意欺骗。

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

编辑:如果路由&切换更改对您的情况太麻烦,则您应该考虑选择OS级防火墙。


在回应评论:防火墙白名单会更安全,因为它能够从操作系统级攻击保护。

如果您不关心操作系统级别的攻击,那么这部分并不重要,并且最终答案是肯定的,欺骗攻击是可能的,并且不可以,您无法在IIS或ASP中对其进行任何操作。净。

所以我仍然认为这可能是浪费你的时间和用户需要等待被添加到白名单的时间。但从安全角度来看,它可能不会伤害到你,并可能让一些攻击者将你的服务器分析为软目标。

+0

我不是在这种情况下操作系统级攻击很感兴趣 - 因为你说他们是网络团队的责任。主要场景是防止未经授权的未经授权的登录尝试。 (为什么)在这种情况下防火墙白名单更安全?谢谢! – 2011-05-31 16:50:03

2

HttpRequest.UserHostAddress是从最终用户发送到服务器的http请求中的源ip号码中检索的。一个http请求被分成几个ip分组,并且源ip号码是每个ip分组中的一个字段。网络中的任何人都可以使用源字段中的任何ip号码制作ip包并将它们发送给您。

但是,这个的有用性有些限制。当你回应一个http请求时,响应被发送到请求中的源ip号码。攻击者不会收到回应,除非他能够在回应接收者的途中拦截回应。举个例子:如果攻击者向你发送一个包含用户名和密码的登录请求,那么你可能会用cookie来响应。但是由于cookie被发送到假源IP,攻击者永远不会看到它。

IP欺骗在技术上并不难,但因为攻击者也不会收到响应,它主要用于可以与单个请求进行攻击。

路由器和防火墙还可以保护你免受虚假源IP的恶意IP数据包。大多数防火墙将阻止来自外部网络的数据包与来自内部网络的源IP。