我听说有些人认为在会话中将信息存储在会话中是一个坏主意,这是不安全的。
因此,在多页业务流程函数中,应用程序将数据写入db,然后在需要时检索信息。
在会话中存储私人信息是否一定不安全?
答案 0 :(得分:7)
只要会话本身不受hijacking的限制,在会话中存储属性就没有安全风险。
有一些涉及并发和会话的严重问题。由于多个线程同时为单个会话发出请求非常常见,因此必须确保存储在Session中的对象是线程安全的。要么使它们不可变,要么使用同步等内存障碍使它们保持线程安全。我强烈推荐article on the subject by Brian Goetz。
答案 1 :(得分:4)
HTTP会话本身并不是不安全的。但是,根据您的应用程序服务器/容器,会话cookie传递回浏览器的机制(以及缺少传输层安全性 - SSL)可能允许恶意方执行各种攻击(跨站点脚本,会话劫持)等)。 我会花一些时间研究这些东西以及SQL注入,以了解使用HTTP会话的完整后果。如果您的应用程序在防火墙内运行,则通常存在比此更大的安全风险,例如社交工程。
答案 2 :(得分:1)
除了性能和并发问题之外,您还应该考虑可用性。多个打开的页面,后退按钮的工作,书签,链接到您的网站等工作?我最后在aerlingus.ie
错误的一天预订了一个航班,差不多在lastminute.com
预订了错误的酒店,因为他们的网站很糟糕。