phpsessid—是否值得将会话名称更改为散列和特定于访问者的名称?


phpsessid - Is it worth changing the session name to something hashed and visitor specific

我想知道是否出于安全目的,值得使用session_name()函数将默认的phpsessid重命名为散列或加密id?

如果是,最好的实现方式是什么?

谢谢,

网上有很多关于这个的文章,我在StackExchange上看到了之前的问题。加密你的session_id只会创建另一个随机数,它和原始随机数一样容易被劫持。

如果你考虑一下,如果你加密一个会话,你要么重新分配session_id到新的数字(在这种情况下,你什么也没有实现),或者你将在你的脚本中使用加密/解密功能。

如果你使用后一种方法,并且有人获得了另一个用户加密的会话ID,它将被你的脚本解密,并且仍然会被授予访问权限。

简而言之,在session_id被分配的随机数之外进一步加密它几乎没有意义,也没有真正的效用。

PHPSESSID重命名为另一个名称,称MYNEWNAME,因为任何对PHP有一点了解的人都知道,HTTP服务器不维护状态,只能跟踪使用PHPSESSID的用户。PHPSESSID存储在客户端cookie中,因此我认为它不安全。每当会话被成功劫持时,有人可能会强制执行一些操作(如Facebook状态帖子)。详见https://codereview.stackexchange.com/questions/75310/protect-from-people-bruteforcing-the-phpsessid