【发布时间】:2011-09-19 04:23:24
【问题描述】:
我想开始在我的模型中使用 attr_accessible 来解决质量分配问题。我了解它的工作原理,并已尽我所能进行了研究。
我不明白的是使用 update_attributes(params[:my_form]) 或 create(params[:my_form]) 并一一设置字段之间的区别?不是都一样脆弱吗?
没有 attr_accessible 和这样做有什么区别...
@model_object = ModelObject.new
@model_object.create(params[:model_object_params])
并且拥有 attr_accessible 并执行此操作...
@model_object = ModelObject.new
@model_object.field1 = params[:model_object_params][:field1]
@model_object.field2 = params[:model_object_params][:field2]
@model_object.field3 = params[:model_object_params][:field3]
@model_object.save!
难道这两种创建记录的方法都同样容易受到攻击吗?黑客/破解者可以向这两种方法发送一个 url,并且两者都会做同样的事情,对吧?
或者使用 attr_accessible 并逐个更新字段会做不同的事情或以某种方式变得更安全?
我发现所有这些使用 attr_accessible 的方法对我来说都没有任何意义。它似乎以两种不同的方式做同样的事情。我错过了什么?
谢谢。
【问题讨论】:
标签: ruby-on-rails mass-assignment