【问题标题】:Rails 3.2 strict mass assignment defaultsRails 3.2 严格的质量分配默认值
【发布时间】: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


    【解决方案1】:

    你的意思是这条线,我假设:

    # Raise exception on mass assignment protection for Active Record models
    config.active_record.mass_assignment_sanitizer = :strict
    

    不会设置批量分配保护本身 - 无论环境如何,它都默认为受保护。正如评论所暗示的那样,它的作用是告诉 Rails 在批量分配错误时引发异常,这有助于开发和测试。在生产中,这些都被忽略了。

    来自attr_protected的文档:

    对这些属性的大量赋值将被忽略,要赋值给它们,您可以使用直接编写器方法。这是为了保护敏感属性不被篡改 URL 或表单的恶意用户覆盖。

    【讨论】:

    • 更具体地说,我的意思是 Rails 核心团队这样做的设计动机是什么。
    猜你喜欢
    • 2012-12-25
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多