如何防止在调试器中看到会话ID?

时间:2011-05-13 17:27:06

标签: php security session

所以Opera Dragonfly似乎能够缓存cookie以及会话信息。特别是PHPSSID我的问题是。是否有办法隐藏PHPSSID,以免被调试器/开发人员工具随时显示?

我不介意cookie,因为它们是安全的。因为它们中的数据是用双盐以及其他一些东西进行的,所以锻造它们对我来说不是问题。

但我想确保没有看到PHP会话。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

简而言之,答案是:你不能,这不是会话ID的工作。

会话ID的重点是一个非常随机的数字,通常称为cryptographic nonce。该值非常难以猜测,然后用于在服务器端引用有关该会话的状态。这可以在数据库中,或者默认情况下PHP使用文件/tmp/THE_SESSION_ID。存储在$_SESSION中的数据存储在此文件中,用户无法获取此数据。

在PHP中,为防止攻击者窃取用户的会话ID,您应在php.ini中设置session.cookie_secure=On。这会强制会话通过HTTPS。

如果您使用的是HTTPS,那么该网络上的攻击者将会隐藏会话ID。通过使用HTTPS会话ID不能被Wireshark或Firesheep等工具劫持。不使用HTTPS违反了OWASP A9: Insufficient Transport Layer Protection。但是,用户仍然可以通过查看其Cookie javascript:document.cookie或使用TamperData来查看自己的会话ID。