(我认为)我理解为什么在用户登录时应该轮换会话ID - 这是防止session fixation的一个重要步骤。
但是,随机/定期轮换会话ID是否有任何优势?
在我看来,这似乎只是提供了一种虚假的安全感。假设会话ID不容易受到强力猜测,并且您只在cookie中传输会话ID(而不是URL的一部分),那么攻击者必须访问您的cookie(最有可能通过窥探您的流量)来获取您的会话ID。因此,如果攻击者获得一个会话ID,他们也可能能够嗅探轮换的会话ID - 因此随机旋转并没有增强安全性。
答案 0 :(得分:6)
如果您使用存储在Cookie中的会话标识符,则会话固定不是问题。我浏览了你粘贴的文件,我看到使用DNS和XSS来拥有用户这一点,这显然比会话固定要大得多(更不用说,分开)了。如果你有一个存储在cookie中的会话标识符(具有可接受的熵级别),则没有合理的理由来轮换它。轮换它的唯一原因是因为它可以通过其他方式猜测或易受攻击,在这种情况下,用户无论如何都会被拥有。
答案 1 :(得分:0)
Web开发不是我的事,但可能是因为用户登录可能是攻击者?例如,如果我登录并获取会话ID 4,我可以猜测会话ID 5将属于其他用户,修改我的本地cookie,然后充当该用户吗?
答案 2 :(得分:0)
听起来总体上是一个愚蠢的想法。
如果用户点击后退按钮会完全搞砸,因为上一页上的链接现在包含过时的会话ID。您也可以抛弃任何AJAX,因为每次对服务器进行RPC时,页面上的所有链接/表单都需要更新,因为它们现在具有无效值。如果有什么不太安全,因为这意味着你的应用程序变得更加复杂,并且有更多机会在其中出错。
如果推理要求你“旋转”id,那么这可能意味着你的id生成很差,那应该是固定的东西。如果窥探是一个问题,请使用SSL。
答案 3 :(得分:0)
根据这篇SSL Labs博客文章(自2013年起),RC4筹码人(2017年仍然存在)很弱,可能允许黑帽从截获的HTTPS流量中暴露会话cookie数据(例如结束) WIFI)。
每隔x
个时间单位(分钟?)以及每y
个请求后,会在博客文章中建议轮换会话Cookie ID /数据。