登录一个标签时自动登录其他标签
Auto login on other tabs when one tab is logged in
好的,我正在尝试在我的本地主机上测试会话 fixation/hijacking。
我正在尝试将我的 URL 和攻击者的 SID 提供给受害者,并让受害者登录 URL。但是当受害者登录时,攻击者刷新了页面,还是在登录页面。
然后我发现,如果我在浏览器中有两个登录选项卡,受害者在选项卡 1 中登录,但选项卡 2 刷新后不会自动登录。所以这可能就是我的攻击者停留在登录页面的原因?
我的问题是 我必须在我的 php 文件中做什么才能让用户在其他选项卡中自动登录(如果他已经在一个选项卡中登录)? 这种情况应该查什么关键词?
会话使用 cookie 来记住用户是否登录。当您启动会话 (session_start()
) 时,服务器会发送一个具有唯一会话 ID 的会话 cookie。当用户请求需要登录的页面时,服务器会检查带有 id 的 cookie 以确保其有效。
Session Fixation 和 Session HiJacking 非常相似,主要区别在于会话如何被破坏。永远不要把 SESSID 放在 URL 中,你只是在要求被黑客攻击。相反,我建议您在用户登录时创建一个会话变量。
EG:
自动登录:检查代码
session_start();
if(isset($_SESSION['logged_in'])){
header("location:loginonlypage.php")
}
PREVENT SESSION HIJACKING/FIXATION:
然而,仅仅因为你的session id不在url中并不意味着session hijacking/fixation 不会发生。使用用户的 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();
}
好的,我正在尝试在我的本地主机上测试会话 fixation/hijacking。
我正在尝试将我的 URL 和攻击者的 SID 提供给受害者,并让受害者登录 URL。但是当受害者登录时,攻击者刷新了页面,还是在登录页面。
然后我发现,如果我在浏览器中有两个登录选项卡,受害者在选项卡 1 中登录,但选项卡 2 刷新后不会自动登录。所以这可能就是我的攻击者停留在登录页面的原因?
我的问题是 我必须在我的 php 文件中做什么才能让用户在其他选项卡中自动登录(如果他已经在一个选项卡中登录)? 这种情况应该查什么关键词?
会话使用 cookie 来记住用户是否登录。当您启动会话 (session_start()
) 时,服务器会发送一个具有唯一会话 ID 的会话 cookie。当用户请求需要登录的页面时,服务器会检查带有 id 的 cookie 以确保其有效。
Session Fixation 和 Session HiJacking 非常相似,主要区别在于会话如何被破坏。永远不要把 SESSID 放在 URL 中,你只是在要求被黑客攻击。相反,我建议您在用户登录时创建一个会话变量。
EG:
自动登录:检查代码
session_start();
if(isset($_SESSION['logged_in'])){
header("location:loginonlypage.php")
}
PREVENT SESSION HIJACKING/FIXATION:
然而,仅仅因为你的session id不在url中并不意味着session hijacking/fixation 不会发生。使用用户的 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();
}