伪造会议/饼干?

Pwn*_*nna 14 php

我不确定$_SESSIONPHP 的工作方式.我假设它是浏览器上的cookie,与服务器上的唯一密钥相匹配.是否可以伪造它并通过只使用会话来识别用户的登录.

如果$_SESSION不能那样工作,有人可能会伪造cookie并绕过登录吗?

dec*_*eze 23

是.

识别用户的唯一事物是与每个请求一起发送的伪随机值.如果攻击者可以猜出要发送的正确值,他可以像其他人一样构成.

有不同的方法可以使这更难:

  • 使会话ID更长(更多熵,更难猜)
  • 检查用户代理等附加信息(基本上更多熵)
  • 显然:使用一个好的随机数发生器
  • 使会话更快到期,以便在任何时候提供一组较小的有效会话ID
  • 经常更新会话ID,即使是有效的ID也是如此
  • 使用SSL加密所有通信以避免彻底的cookie劫持


ale*_*lex 6

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

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

但是,大多数站点都会检查以确保用户代理是一致的,并且还会重新生成每个请求的会话标识,以缓解此问题.

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