我正在创建自己的身份验证系统(使用Java)。当用户通过身份验证并从数据存储区加载用户对象时,将此用户对象存储到会话是安全的,并假设当用户在会话中有用户对象时,它是通过合法登录获得的真实有效的用户对象?是否有任何可能的安全问题,我在这里没有看到?
答案 0 :(得分:2)
会话劫持?登录页面上可能的SQL注入或XSS?一个中间人袭击的人?
在设计安全登录系统时,您应该考虑一些事项。
答案 1 :(得分:1)
原则上是。
您自己完全控制会话变量(客户端既不读取也不怀疑访问这些变量)。如果绕过了身份验证机制,那不是因为用户已经设置了自己的会话变量(因为他可以设置cookie的内容)。
话虽如此,当然还有 hack 网页的方式(在OWASP top 10上阅读,包括CSRF,XSS等)。
答案 2 :(得分:0)
我个人倾向于在我的所有网络应用上执行此操作,但我会先删除或加密用户对象中的敏感数据,然后再将其存储在会话中,例如密码
替代方法是填充和使用仅包含会话中所需数据的用户对象的简易版本(即用户ID,名字。姓氏)
答案 3 :(得分:0)
添加到所有其他帖子我认为还有一个安全问题。您仅在用户登录时验证用户database
,然后在session
中设置用户,请说当用户登录并且session
处于活动状态时,访问权限已被撤消在这种情况下,用户将有权访问,直到他的会话生活不可接受。