【发布时间】:2012-11-06 19:01:41
【问题描述】:
在一个新的 Rails 项目中,mass assignment 在生产中未设置为 strict 的原因以及在开发和测试中设置为 strict 的原因是什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 mass-assignment
在一个新的 Rails 项目中,mass assignment 在生产中未设置为 strict 的原因以及在开发和测试中设置为 strict 的原因是什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 mass-assignment
你的意思是这条线,我假设:
# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict
这不会设置批量分配保护本身 - 无论环境如何,它都默认为受保护。正如评论所暗示的那样,它的作用是告诉 Rails 在批量分配错误时引发异常,这有助于开发和测试。在生产中,这些都被忽略了。
来自attr_protected的文档:
对这些属性的大量赋值将被忽略,要赋值给它们,您可以使用直接编写器方法。这是为了保护敏感属性不被篡改 URL 或表单的恶意用户覆盖。
【讨论】: