PHP锁定了ip地址

chi*_*ang 22 php

我锁定了IP地址.

这是否意味着用户只能使用相同的IP地址登录?或者用户是否会注销并且必须重新登录才能获得新会话?

if (isset($_SESSION['last_ip']) === false) {
    $_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR']; 
}

if ($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']){
    session_unset();
    session_destroy();  
}
Run Code Online (Sandbox Code Playgroud)

Hal*_*yon 13

如果用户的IP地址发生更改,此代码将删除会话(注销).

因此,用户可以从任何IP地址登录,但如果更改则将被注销.

这可能有助于防止会话劫持,但如果您使用动态IP,它将无法正常工作,因为您的IP将不断变化.

  • `session_regenerate`将为用户提供一个新的`session_id`.会话由`session_id`标识,用户将其作为cookie发送.当您重新生成会话时,您告诉用户从现在开始发送不同的`session_id`.会话数据将保持不变,除了一些边缘情况,这是非常透明的(即用户不会注意到). (3认同)

小智 8

确实如此.如果用户的IP发生变化,他将被注销.虽然攻击者仍然可以模仿IP,但如果他知道,那么它就不是完全安全的.有关如何防止会话劫持的更多信息,请查看这些页面:

我也强烈推荐Chris Shiflett.他关于会话劫持的文章可以在这里找到:

http://shiflett.org/articles/session-hijacking