将会话数据存储在 cookie 中

2024-01-28

最近我偶然发现一些文章建议使用 cookie 来存储会话数据。 我喜欢这个想法,并通过添加一个运行良好的 CookieStorage 类来扩展我的会话存储(请注意,每个用户我使用唯一的哈希密钥来签名和加密数据) 然而,还有很多其他文章建议不要在 cookie 中存储敏感数据,即使您对该值进行了加密和签名。

就我个人而言,我认为没有理由不这样做,特别是在为每个用户使用不同的密钥加密和签名该值时。数据被泄露的风险与正常会话相同,不是吗?更不用说如果您使用 SSL,那么就可以消除被劫持的风险。

我认为这种方法的好处是,如果会话数据不大,则服务器上用于打开/读取/写入会话数据的 IO 操作更少,无论存储是基于文件、数据库还是内存

感谢您对此事的反馈

Thanks


如果您正在使用纯cookie存储根本没有服务器端组件,那么用户就可以控制数据。唯一阻止他的就是你的加密/签名方法;但这是可以被攻击的。如果您没有使用特定于用户会话的加密/签名密钥(即您没有使用服务器端会话),那么您几乎只能使用静态密钥。有人可能会离线攻击它,试图对其进行暴力破解。一旦他们这样做了,他们就可以欺骗整个会话。

如果您使用存储在服务器端会话中的更安全的一次性随机密钥...您已经将数据存储在服务器端会话中!为什么不保持简单并将所有内容存储在那里呢?它还会减少每个请求来回传输所有 cookie 所需的带宽需求。

如果您这样做主要是为了节省服务器上的 I/O 操作:使用更高效的会话存储,例如基于内存缓存的存储。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将会话数据存储在 cookie 中 的相关文章

随机推荐