当用作会话存储时,我注意到redis-rails将会话id以未加密的格式保存在cookie中。不应该将会话id视为安全信息,而不是在未加密的cookie中公开以阻止会话劫持尝试吗?
发布于 2017-09-10 22:36:10
No.
会话标识符cookie是将客户端链接到会话的唯一(体面)方法。客户端必须有某种类型的索赔,它们可以随请求一起传递,以便我们能够识别它们。
无论您使用的是CookieStore、Redis、ActiveRecord还是memcached,这都适用。
用固定的salt或无salt加密会话标识符只会浪费时间,因为攻击者可以在中间人或XSS攻击中访问cookie。
如果您使用了salt,您也必须将其链接到用户。现在你有两个问题而不是一个问题。
虽然您可以使用一些新的方法,如与用户代理、ip或任何其他您认为了解客户端的方法进行盐碱化,但安全性方面的好处并不多。
如@pvg所说:
会话id只需是随机的、不可预测的和足够大的。
保护本届会议的有意义的方法是:
reset_session,以避免会话固定。https://stackoverflow.com/questions/46144327
复制相似问题