引用IP操作



一些应用程序仅通过接受来自特定ip的请求来提供安全性。这是使应用程序安全的好方法吗?在请求期间,是否有任何方法可以操纵这个引用者IP ?

gettremoteaddr、getRemoteHost和getRemotePort

在发出请求时是否有办法设置上述值?

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

然而,这不是一个好的安全实践,尽管它通常是可靠的。原因是IP地址可以被任何人假设,并且由于NAT和防火墙等技术,它们经常在数据包中更改。

考虑一下,如果你有两个用户在同一个使用NAT的私有网络上,并且他们同时向你的服务器发出请求,你的服务器将看到IP地址是相同的,具有不同的源端口。允许路由正确发生的区别因素是源端口,而不是IP地址。为了使其更不可靠,源端口将在每个新请求上更改,这可能在单个HTTP会话中发生数十次。

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

最新更新