Php 伪造会话/Cookies?

Php 伪造会话/Cookies?,php,Php,我不太清楚$\u会话在PHP中是如何工作的。我假设浏览器上的cookie与服务器上的唯一密钥匹配。是否有可能伪造此密码,以及仅使用会话来识别用户的旁路登录 如果$\u SESSION不能这样工作,有人可能伪造cookie并绕过登录吗?PHP中的Sessions默认情况下将数据存储在服务器上的文件中(/tmp/),并存储标识符cookie,通常PHPSESSID(它将是十六进制数,例如f00f8c6e83cf2b9fe5a30878de8c3741) 如果您有其他人的标识符,那么理论上您可以使用他

我不太清楚
$\u会话在PHP中是如何工作的。我假设浏览器上的cookie与服务器上的唯一密钥匹配。是否有可能伪造此密码,以及仅使用会话来识别用户的旁路登录


如果
$\u SESSION
不能这样工作,有人可能伪造cookie并绕过登录吗?

PHP中的Sessions默认情况下将数据存储在服务器上的文件中(
/tmp
/),并存储标识符cookie,通常
PHPSESSID
(它将是十六进制数,例如
f00f8c6e83cf2b9fe5a30878de8c3741

如果您有其他人的标识符,那么理论上您可以使用他们的会话

但是,大多数站点都会进行检查,以确保用户代理是一致的,并且还会在每次请求时重新生成会话标识,以缓解这种情况


至于猜测会话,这是可能的,但极不可能。猜测信用卡号码会更容易(字符池较小(
0-9
大于
0-9a-f
)以及验证它的校验和)。当然,您还需要有效期和安全代码。

正确实现,会话id非常长且随机,足以使猜测变得不可行(尽管如果您能够猜测特定用户的会话id,那么您将作为该用户)。不过,您可以嗅探和劫持会话——firesheep就是这样做的:

是的

识别用户的唯一方法是随每个请求一起发送一个伪随机值。 如果攻击者能够猜出要发送的正确值,他可以冒充其他人

有不同的方法让这变得更难:

  • 使会话ID更长(熵越大,越难猜测)
  • 检查其他信息,如用户代理(本质上是更多的熵)
  • 显然:使用一个好的随机数生成器
  • 提前终止会话,以便在任何时候提供一组较小的有效会话ID
  • 经常更新会话ID,即使是有效的ID
  • 使用SSL加密所有通信,以避免完全的cookie劫持

有什么想法仅仅是设置cookies吗?@ultimatebuster我不知道你的意思抱歉。与其使用$\u会话来识别,我的意思是使用cookies来识别。@ultimatebuster你可以自己实现会话,但我不会。@ultimatebuster:你不应该在cookie中存储重要数据,这使得它很容易被其他方式窃取。这让我非常害怕。从现在起,我会更加小心在饼干和会议上吐出的东西。。