tok*_*and 15 ruby security ruby-on-rails mass-assignment strong-parameters
通过批量分配来防止安全风险的官方方法是使用attr_accessible.但是,一些程序员认为这不是模型的工作(或者至少不仅仅是模型).在控制器中执行此操作的最简单方法是切换params哈希:
@user = User.update_attributes(params[:user].slice(:name))
Run Code Online (Sandbox Code Playgroud)
但是文档说明:
请注意,使用Hash#except或Hash#slice代替attr_accessible来清理属性将无法提供足够的保护.
这是为什么?为什么白名单切片的params不能提供足够的保护?
更新: Rails 4.0将发布强参数,一个精确的参数切片,所以我猜整个切片事情毕竟不是那么糟糕.
切片和控制器除外的问题可能与accept_nested_attributes_for
模型结合使用.如果使用嵌套属性,则需要在所有位置切片参数,在控制器中更新它们,这并不总是最简单的任务,尤其是对于深度嵌套的方案.使用attr_accesible
你没有这个问题.
归档时间: |
|
查看次数: |
5719 次 |
最近记录: |