Joh*_*123 8 php security session
我现在读了一个指南,我对此感到困惑:
为了解决这个弱点,有助于理解问题的范围.会话固定只是一个绊脚石 - 攻击的目的是获取可用于劫持会话的会话标识符.当被劫持的会话具有比攻击者通过合法手段获得的更高级别的权限时,这是最有用的.此级别的权限可以像登录一样简单.如果每次权限级别发生更改时都会重新生成会话标识符,则实际上会消除会话固定的风险:
<?php
$_SESSION['logged_in'] = FALSE;
if (check_login())
{
session_regenerate_id();
$_SESSION['logged_in'] = TRUE;
}
?>
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的这个,我只需要做出一个session_regenerate_id()我以前赋值像logged_in = true或user_id = id然后我做了对会话固定保护?
这够了吗?我还可以做些什么?
小智 8
实际上,会话固定最常见的情况是攻击者会在您的主页或登录页面上放置一个链接,在URL上设置会话ID(作为GET变量)并等待一些用户登录.由于攻击者随后知道这些用户的会话ID,并且由于可以在URL中设置该会话ID,因此攻击者可以重新访问注册用户的个人资料页面/仪表板等的链接并模拟该用户.
因此,为了防止这种类型的攻击,会话ID重新生成就足够了,因为攻击者仍然使用未经身份验证的会话.您可以采取的另一个步骤是不接受网址中的会话ID.要做到这一点,你必须设置(如果你有权访问服务器上的这个文件或通过ini_set,请在php.ini中):
这样,即使是未经身份验证的会话,攻击者也无法设置会话ID.
你是对的。只要您在升级用户权限时更改会话 ID,就可以防止会话固定。
会话固定的工作原理是将受害者的会话 ID 设置为攻击者知道的某个 ID。然后攻击者等待用户登录。如果会话 ID 没有改变,此时攻击者就可以访问用户的帐户(他有自己的会话 ID)。如果会话 ID 发生变化,则攻击无效。
| 归档时间: |
|
| 查看次数: |
5748 次 |
| 最近记录: |