【问题标题】:Grails Prevent HTML modificationsGrails 防止 HTML 修改
【发布时间】:2016-12-05 09:38:17
【问题描述】:

我正在寻找一种方法来防止 HTML 表单用户修改,基于此示例:

“用户”实体有一个枚举角色(用户、管理员等),还有一个用户控制器,它显示一个 g:form 用于第一个、最后一个和电子邮件。控制器的动作是 user.properties = params。

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

有 useToken="true" 和 withForm-closure,但这似乎只是防止用户重复提交相同的表单。除此之外,它还适用于会话,因此不能真正在多个服务器上进行扩展。

我正在使用 Grails 2.3.6。除了不使用 xxx.properties = params 之外,有没有办法防止此类事情发生?

【问题讨论】:

    标签: grails


    【解决方案1】:

    您可以提供允许的属性列表。以您为例:

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

    为了安全起见,您应该始终提供该列表。在 grails 文档中搜索“数据绑定和安全问题”。

    【讨论】:

    • 感谢您的宝贵意见。但是有没有办法确保表单没有被修改,例如。散列所有字段名称?我想这不是 useToken 的目的吧?
    • 是的,你是对的。 useToken 将防止双重提交和跨站点请求伪造。
    猜你喜欢
    • 2015-01-17
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多