引用者ip操纵

时间:2013-03-18 17:55:23

标签: security request httprequest referrer

某些应用程序仅通过接受来自某些IP的请求来提供安全性。这是使该应用程序安全的好方法。在请求期间有没有办法操纵此引荐来源IP?

getRemoteAddr,getRemoteHost和getRemotePort

在发出请求时有没有办法设置上面的值?

1 个答案:

答案 0 :(得分:2)

是的,可以“欺骗”数据包的源IP,使请求看起来来自与实际不同的IP地址。但是,这不是一个问题,因为如果IP地址被欺骗,TCP的三次握手将无法完成,除了少数例外(例如攻击者嗅探数据包并在数据包通过线路时生成响应)。一般来说,这很难做到。

然而,这并不是一种好的安全措施,即使它通常是可靠的。原因是任何人都可以承担IP地址,并且由于NAT和防火等技术,它们经常在数据包中被更改。

如果您使用NAT在同一个专用网络上有两个用户,并且他们同时向您的服务器发出请求,那么您的服务器将看到具有不同源端口的IP地址相同。允许路由正确发生的区分因素是源端口,而不是IP地址。为了降低可靠性,源端口将在每次新请求时发生变化,在单个HTTP会话期间可能会发生数十次。

话虽如此,IP过滤有一些好处。您可以通过IP过滤来使来自某个国家或地区的某个人更难以连接。这不应该是您的唯一安全性,但它可以提供帮助,因为从不同的范围获取有效的IP地址通常是非常重要的。例如,某些组织将默认阻止所有非美国的IP。这与用户帐户一起使用。这使得非本地攻击者更难以访问服务器。