根据会话属性做出授权决定是否安全?

时间:2011-07-16 20:45:03

标签: session java-ee attributes security username

所以我在Java EE应用程序上实现自定义安全性。我正在做的是每次用户尝试登录时,如果电子邮件和密码正确,我将他们的电子邮件地址保存为会话中的属性。稍后当客户端尝试访问受限区域时,我会从会话属性中获取电子邮件地址以进行授权。

这一切都安全吗?客户端可以自己进行会话并为其某个属性分配一个电子邮件地址,以欺骗我的应用程序将其授权到限制区域吗?

如果没有,有人可以给我一个关于如何在Java EE上正确实现安全性的教程吗?

2 个答案:

答案 0 :(得分:0)

这个问题取决于身份验证和授权之间的区别。

身份验证意味着“你就是你说的那个人”。授权是关于您进入应用程序后可以执行的操作。

除非您经过身份验证,否则无法创建会话,因此我认为会话不是问题所在。

电子邮件是另一回事。欺骗电子邮件地址非常容易;这很难验证。我只是想使用一个电子邮件地址进行授权。也许你应该考虑将它与其他属性结合起来。

答案 1 :(得分:0)

实施安全性的教程超出了本网站的范围。您应该使用Google查找其中一个。

但回答第一个问题,不,那不安全。用户甚至可以短暂地篡改存储在他的机器上的任何数据。更安全的方法是向用户发出会话ID,并将该ID与用户的详细信息服务器端相关联。确保您的会话ID足够大以防止冲突,并且会话ID号对每个用户都是唯一的。

如果您将权限基于用户提供的电子邮件地址,则没有什么可以阻止他提供(例如)您自己的电子邮件地址以获得您的权限。