![]() |
1
2
简短的答案是$u会话是 安全的 您不必担心它的内容被泄露给用户或攻击者。 会议内容 不是 通常用户可以访问。您应该能够存储用户的主键,这样就可以了。在正常的Linux系统中,会话文件夹位于/tmp中,但在php.ini中可以将其更改为web根目录(/var/www/tmp),然后可以访问会话。唯一的另一种方法是,如果用户能够通过劫持对eval()的调用或通过正常打印的变量访问$\u session super global。
如果您在共享主机上运行,并且使用的是旧版本的PHP和/或服务器配置错误,则此系统上的其他用户可能会读取或修改存储在/tmp/中的会话文件。我不知道有哪一个应用程序考虑到了这种攻击。如果这是一个问题,您可以将信息存储在
|
![]() |
2
4
你说得对。客户端只看到随机生成的会话ID令牌。有一些方法可以滥用这个令牌(劫持等),但在上面有一个guid不会增加任何内容。相比之下,选择 session.cookie_httponly (javascript看不到会话cookie) session.cookie_secure (cookie只能通过https传输)防止某些攻击场景。 |
![]() |
3
1
有时,为了增加安全性,开发人员可能会给用户的会话分配一个长字符串,以使劫持变得更加困难。通过在会话创建时使用这个新字符串设置一个cookie,应用程序可以在随后的请求中检查正确的字符串,以更好地确保它是实际登录的人。 这只是增加了一件想成为劫机犯的事情。但是,它可能是一种错误的安全感,因为如果涉及嗅探,它几乎不保护会话,因为新的cookie与php会话cookie一起发送。而且,会话ID是很难猜测的(我相信你知道,只是不要把它放在URL中,而是放在cookie中)。 会话信息存储在硬盘上,因此在没有应用程序干预的情况下,客户端无法获取会话信息。 |
![]() |
4
1
我从来没有见过guid用于会话,但是我看到了一些额外的方法,它们确实增加了一点安全性。
有一篇关于 session hijacking countermeasures 实际上,在维基百科上。 也就是说,我可以想象,任何将guid存储为会话的一部分以用于会话安全性的人都可能看不到更好的解决方案(如会话重新生成)。我可以看到存储guid的其他用途(可能是游戏随机生成器的一部分),但不用于会话安全。 |
![]() |
Karlo · PHP Sqlite PDO最新版本 5 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 5 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 5 月前 |