# Grails 1.1 Web层 - 数据绑定 - 数据绑定与安全关系

**URL:** <https://www.isharkfly.com/t/grails-1-1-web/6671>\
**Category:** 程序语言\
**Created:** [November 4, 2012, 5:00pm UTC](https://www.isharkfly.com/t/grails-1-1-web/6671 "2012-11-04T17:00:39Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [November 4, 2012, 5:00pm UTC](https://www.isharkfly.com/t/grails-1-1-web/6671/1 "2012-11-04T17:00:39Z")

</div>

当批量更新来自请求参数的属性,你必须小心，避免客户端绑定恶意数据到 domain 类上, 并持久化到数据库.

你可以使用下标操作符限制捆绑在某个给定domain类的属性:`def p = Person.get(1)
p.properties['firstName','lastName'] = params`在这种情况下,只有firstName 和 lastName 属性将被捆绑.

另一种实现这个的方式是使用 domain类作为数据绑定目标,你可以使用Command Objects. 另外还有一个更加灵活bindData 方法.

The bindData 方法具有同样的数据绑定能力,但,是对于任意的对象:`def p = new Person()
bindData(p, params)`当然,bindData 方法同样允许你排除某些你不想更新的参数:`def p = new Person()
bindData(p, params, [exclude:'dateOfBirth'])`或只包含某些属性:`def p = new Person()
bindData(p, params, [include:['firstName','lastName]])`
