2008-12-04 97 views
4

我听说有人认为在会话中将服务器信息存储在会话中是一个坏主意,它不安全。

因此,在多页业务流程功能中,应用程序正在将数据写入数据库,然后在需要时检索信息。 在会话中存储私人信息有没有必要不安全?Java会话变量

回答

7

只要会话本身从hijacking安全,在Session中存储属性就没有安全风险。

有一些涉及并发和会话的严重问题。由于多线程对于单个会话同时发出请求非常普遍,因此您必须确保存储在会话中的对象是线程安全的。要么使它们不可变,要么使它们像线程安全一样具有内存障碍,如同步。我强烈推荐article on the subject by Brian Goetz

+0

文章链接被破坏:-( – avgvstvs 2013-12-12 16:35:18

4

HTTP会话本身并非天生不安全。但是,根据您的应用程序服务器/容器,会话cookie传回浏览器的机制(以及缺乏传输层安全性 - SSL)可能允许恶意方执行各种攻击(跨站点脚本,会话劫持等)。 我会花一些时间研究这些事情以及SQL注入以了解使用HTTP会话的完整分支。如果您的应用程序在防火墙内运行,那么通常比这个安全风险更大,比如社交工程。

1

除了性能和并发问题,您还应该考虑可用性。做多个打开的页面,后退按钮的工作,书签,链接到您的网站等,工作?我最后在aerlingus.ie的错误日预订了一个航班,并且几乎在lastminute.com预订了错误的酒店,因为他们的网站性能不佳。