如何保护客户端会话 ID


How are client side Session Ids protected?

是什么阻止某人登录网站Z。 进入 cookie 中,拿着网站 Z 的Session_Id,摆弄它成为服务器识别的其他人?

是什么阻止某人登录网站 Z.进入 cookie 持有网站 Z 的Session_Id,并摆弄它以成为服务器识别的其他人?

您必须实际知道另一个会话 ID 才能执行此操作。会话 ID 非常长且随机,因此您无法猜测其他用户的 ID。

只有会话 ID 的长度和基础。 如果时间很长,则需要数万亿次(或更多)次尝试才能发现碰撞。 较长的 id 将可能的 id 数乘以哈希的基数,因此,如果您的哈希包含数字和小写字母,则每增加一个字符会将可能性乘以 36。

20 个字符的哈希将为您提供 36^20 种不同的可能性。 如果将 id 的长度加倍,您将获得 36^40 种不同的可能性。 使任何人都更难暴力进入另一个帐户。

如果我们谈论 php 会话,答案是"没有人保护他们"!

你必须做点什么,试图让它"更安全"。

  • 使用 SSL 进行身份验证
  • 使会话 ID 随时间过期
  • 检查IP和用户代理(好的,可以规避)

等等...

在某些情况下(CodeIgniter框架),您可以加密cookie,这使得这种攻击更加困难。

最终,作为开发人员,您有责任确保安全性,没有什么是开箱即用的,只需遵循适当的安全准则即可开发安全应用程序。