Binding IP地址与会话id的绑定

Binding IP地址与会话id的绑定,binding,Binding,为了防止会话固定问题,我们如何将IP地址与会话id绑定? 可以将会话id与IP地址的id绑定吗?可以,但这不是一个好主意。如果您的客户端位于代理服务器群的后面,则每次请求时,其外部IP地址都可能会发生更改。例如,AOL就是这样做的。我认为这不是一个好主意。来自相同用户的后续请求可能不一定来自相同的IP地址,因为该请求可能来自不同的代理。IIRC过去所有AOL用户都是这样,其他提供商或一些公司网络也可能是这样 最好使用来保护会话,以防止会话被劫持 我以前读过一些关于它的文章。您可以将用户IP地址

为了防止会话固定问题,我们如何将IP地址与会话id绑定?
可以将会话id与IP地址的id绑定吗?

可以,但这不是一个好主意。如果您的客户端位于代理服务器群的后面,则每次请求时,其外部IP地址都可能会发生更改。例如,AOL就是这样做的。

我认为这不是一个好主意。来自相同用户的后续请求可能不一定来自相同的IP地址,因为该请求可能来自不同的代理。IIRC过去所有AOL用户都是这样,其他提供商或一些公司网络也可能是这样

最好使用来保护会话,以防止会话被劫持


我以前读过一些关于它的文章。您可以将用户IP地址作为额外会话元数据进行检查。但是,如果您想将其用作一般会话ID,那么在处理某个代理网关后面的用户时可能会遇到问题,因为在该网关中,所有用户都将具有相同的IP地址。
尽管它可以在某种程度上防止会话盗窃(使用cookie highjacking等技术)。但应该考虑的是,cookie劫持者也可以模仿受害者的IP地址。因此,检查用户会话和IP地址可能是提高安全性的良好做法,但不是防弹的解决方案。

这还不是问题,但一旦使用IPv6,客户端将经常更改其IP地址,无论他们是否来自AOL。@Manni想详细说明吗?我指的是“IPv6隐私扩展”。:这是行不通的。如果你有一个经过身份验证的会话,你实际上是在破坏受害者的会话,并让“攻击者”“根据IP地址差异创建新会话。除非客户机与其IP协商始终保持地址不变,否则IP地址检测将永远无法工作。此外,这不支持XSS伪造攻击您提供的链接不可用。
if($_SERVER['REMOTE_ADDR'] != $_SESSION['PREV_REMOTEADDR']) {
   session_destroy(); // destroy all data in session
}
session_regenerate_id(); // generate a new session identifier
$_SESSION['PREV_REMOTEADDR'] = $_SERVER['REMOTE_ADDR'];