2016-12-05 97 views
0

我正在寻找一种方法来阻止HTML表单的用户修改,在此基础上例如:Grails的防止HTML修改

“用户”实体有一个枚举角色(用户,管理员等)并有一个UserController的是显示ag:首先,最后和电子邮件的形式。控制器的操作user.properties = params。

用户如何使用Firebug或Chrome Web开发人员修改HTML表单并将文本字段名重命名为角色并输入“Administrator”并将被授予管理员权限。

有useToken =“true”和withForm-closure,但这似乎阻止用户双重提交相同的表单。除此之外,会话还适用于多个服务器,因此不具备可扩展性。

我正在使用Grails 2.3.6。有没有办法阻止这样的事情,除非不使用xxx.properties = params?

回答

1

您可以给出允许的属性列表。举个例子:

user.properties['first', 'last', 'email'] = params 

你应该总是给出安全列表。在Grails文档中搜索“数据绑定和安全问题”。

+0

感谢您的好意见。但是没有办法确保表单没有被修改,例如。散列所有字段名称?我想这不是useToken的目的,对吧? – sullivan

+0

是的你是对的。 useToken将防止双表单提交和跨站点请求伪造。 –