2011-11-24 176 views
0

语境:Web应用程序 - 爪哇,Spring MVC的,春季安全策略在Java Web应用程序管理用户的操作

的不是透明的,我是什么样的信息存储/如何执行的Web应用程序的某些行为(唐考虑当然没有考虑密码),例如我可以:

  1. 检索用户(数据库请求)并将用户详细信息存储在会话中。
  2. 只需检索用户标识(数据库请求)并将其存储在会话中并在需要时将其提取到DAO。将用户ID保存在会话中安全吗?
  3. 请求范围。不要在会话中存储任何东西(当然,春天仍然存储安全细节)如果用户请求动作 - 确定是否已验证(?+角色),确定其id(数据库请求),将其提取到DAO。如果用户再次请求此操作,则必须重复步骤。

假设我的db表总是有int id作为主键。登录名称是唯一的。请不要局限于我的3种方法,这些都是非常简单的例子,我说的是数据存储/持久化(请不要将ORM与这个词联系起来),它是数据库请求的组合,用于DTO在Web应用程序的服务器端。

我认为我在会话(或跨请​​求)中存储的更多细节越容易管理它,并且对数据库的请求也越少。如果我将这些细节保存在不能识别特定用户的表单中,那么应该没有问题?例如,如果我存储“id = 5; fruit_id [] = 1,4,7;(对不起,如果语法错误)在会话中说”,它确实没有确定是否安全性被破坏?

回答

1

您的问题有点模糊,只能根据确切的细节正确回答。但是,通常在会话中存储用户详细信息(包括用户标识)是很好的。可能是一个User对象,用于镜像你的数据库用户表中的任何字段/细节。存储认证级别或角色也是可以的。当然你也不应该在会话中存储太多的数据

相关问题