为了防止会话固定问题,我们如何将IP地址与会话ID绑定? 是否可以将会话ID与IP地址绑定?
答案 0 :(得分:7)
我认为这不是一个好主意。来自相同用户的后续请求可能不一定来自相同的IP地址,因为该请求可能来自不同的代理。 IIRC曾经是所有AOL用户的情况,也可能是其他提供商或某些公司网络的情况。
最好使用page tokens保护您的会话,以防止劫持会话。
答案 1 :(得分:3)
你可以,但它不是一个好主意。如果您的客户端位于代理服务器群之后,则每个请求的外部IP地址可能会发生变化。例如,美国在线这样做。
答案 2 :(得分:2)
我以前读过一些关于它的文章。您可以将用户IP地址检查为额外的会话元数据。但是,如果要将其用作常规会话ID,则可能无法处理特定代理网关背后的用户,其中所有用户将具有相同的IP地址。 虽然它可以用来防止会话被盗(使用cookie劫持等技术)某种程度。但应该考虑到cookie劫机者也可以模仿受害者的IP地址。所以检查用户会话和IP地址是一个很好的做法,可以提高安全性,但不是防弹解决方案。
答案 3 :(得分:1)
http://en.wikipedia.org/wiki/Session_fixation
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'];