有一个表:Member
字段: id
username
password
sex
name
age
.........
字段比较多,在后台接收参数:
public String updateInfo(Member member){
memberDao.update(member);
}
在一个修改用户资料的页面,只允许修改一些基本信息(姓名 年龄 性别 之类的),在前台的地方构建 sex name age 三个表单,提交到方法内,由spring mvc自动给set到bean去..
这样就有一安全问题,如果这个用户是不允许修改用户名 或者 不允许修改密码的... 用户猜到是用这个模式进行的更新操作,自己构造 username password 参数提交,spring mvc 找到member中有这些属性,就自动设置上去了.. 执行update的时候就会一并更新了。
如果不用自动设置到bean的模式,单独接收每一个参数,那如果参数很多就会非常的乱而且繁琐,请问各位有没有一个比较好的解决方案。
1
cloudhunter 2015-06-10 22:02:25 +08:00 1
做 updateInfo 之前,检查下用户有没有相应的更新字段权限不就结了
|
2
letitbesqzr OP @cloudhunter 那样做的麻烦程度,不就和每个参数都单独接收一样了?
|
3
saximoer 2015-06-10 22:07:49 +08:00 1
页面上看到的VO 对象和实际的ENTITY 不是一个对象即可~
|
4
monsoon 2015-06-10 22:43:08 +08:00 via Android 1
搜索 BeanUtils
|
5
BuilderQiu 2015-06-11 09:27:54 +08:00 1
前后台不是一个VO,转换一次即可
or 根据ID或者登陆用户什么的查询出被修改的数据,然后从前台传来的对象中取出有权限修改的部分赋值,更新。 |
6
letitbesqzr OP @BuilderQiu 采用第二种方案.. 3q
|