所以我一直在寻找有关会话安全性的一些信息,只能找到与PHP会话相关的信息。
现在我的网络应用程序针对数据库对用户进行身份验证,如果成功,则将其用户对象(一个休眠实体)作为属性放入HttpSession。
我的网络应用,然后验证该属性是否已设置,并将该用户对象用于所有未来的数据库查询,并确认用户已获得授权。
我的网络应用程序将管理小型企业的资金和支付,安全性是我的主要关注点。如果攻击者能够冒充用户,他们就可以退款并取消销售。付款由条带处理,因此卡片详细信息将是安全的,但用户将具有API访问权限以启动退款。
此用户对象设置为HttpSession属性是否足够安全,还是应该添加更严格的安全措施?如果是这样,请建议其他方法来保护用户帐户。
所有会话均通过SSL进行。
谢谢!
答案 0 :(得分:2)
会话状态保存在服务器端,就像在PHP中一样。会话ID由浏览器作为cookie发送,如在PHP中。可以通过窃取他的会话cookie来冒充用户,但由于流量是使用HTTPS加密的,唯一的方法就是从浏览器内存或服务器内存中窃取它。
答案 1 :(得分:2)
嗯,基本上,在使用Java / PHP或任何其他语言处理财务应用程序时,您绝不应仅依赖会话。通过短信至少使用“一次性”密码作为“退款和取消销售”等关键操作的批准。
支持java会话,拒绝将会话ID存储为请求参数是一个良好的开端 - 对会话固定的第一个也是最容易的保护(将此添加到web.xml):
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>
作为复杂的解决方案尝试HDIV http://www.hdiv.org/
答案 2 :(得分:1)
不,您至少需要担心https://www.owasp.org/index.php/Top_10_2013-Top_10。
特别是对于您的应用类型,您应首先关注SQL注入,会话修复,CSRF,XSS和不安全的直接对象引用。
我首先要使用像Apache httpd
的ModSecurity这样的Web应用程序防火墙