登录一个选项卡时,在其他选项卡上自动登录

时间:2015-11-03 09:16:03

标签: php cookies login session-hijacking session-fixation

好吧,我正在尝试在我的localhost上测试会话固定/劫持。

我正在尝试将带有SID的URL从攻击者提供给受害者,让受害者登录该URL。但是当受害者登录时,攻击者刷新了页面并仍然在登录页面中。

然后我发现如果我在浏览器中有两个登录选项卡,则在选项卡1中登录受害者但是选项卡2在刷新后不会自动登录。那么这可能是我的攻击者留在登录页面的原因?

我的问题是如果他已经在一个标签中登录,我在php文件中需要做什么来自动登录其他标签中的用户?我应该注意哪个关键字?这种情况?

1 个答案:

答案 0 :(得分:0)

会话使用Cookie记住用户是否已登录。当您启动会话(session_start())时,服务器会发送一个具有唯一会话ID的会话cookie。当用户请求需要登录的页面时,服务器会使用id检查cookie,以确保其有效。

会话修复和会话HiJacking非常相似,主要区别在于会话如何受到损害。永远不要把SESSID放在URL中,你只是要求被黑客攻击。相反,我建议您在用户登录时创建会话变量。
EG:

自动登录:检查代码

session_start();
if(isset($_SESSION['logged_in'])){
    header("location:loginonlypage.php")
}

防止会话劫持/固定:然而,仅仅因为您的会话ID不在网址中并不意味着不会发生会话劫持/录制。使用用户的IP作为安全措施来防止这种情况发生。另外,请确保将会话cookie设置为HTTP,这样Javascript就不会想吃掉你的cookie:)

ini_set('session.cookie_httponly', 1); //SET HTTP ONLY COOKIE
    if (!isset($_SESSION['last_ip'])) {
        $_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR'];
    }

    if ($_SESSION['last_ip'] !== $_SERVER['REMOTE_ADDR']) {
        session_unset();
        session_destroy();

    }