とにかく強力なパラメータの使用を無効にする方法はありますか?
そして、それがセキュリティ上の脆弱性であることは知っていますが、私は本当にそれを必要としない/望んでいません.
とにかく強力なパラメータの使用を無効にする方法はありますか?
そして、それがセキュリティ上の脆弱性であることは知っていますが、私は本当にそれを必要としない/望んでいません.
Stripe の Webhook からすべてのパラメーターを保存しようとしたときに、この問題に遭遇しました。
単一のインスタンスにすべてのパラメーターを許可する場合は、params オブジェクトで #to_hash を呼び出してから、初期化メソッドに渡すことができます。
元:
@my_object = MyObject.new(params[:my_object].to_hash)
「無効にする」とは、Rails 3 スタイルのattr_accessible
行にフォールバックすることを意味する場合、はい。
protected_attributes gemを使用するだけです。
私はそうは思わない。
DHH は、このプル リクエストについてここにコメントし、強力なパラメーターに無効化スイッチを追加します
いずれにせよ、Rails 4.0 がすべての人に強力なパラメーターを強制し、それをオフにすることができなくなるとすぐに、これはすべてレガシーの問題です。
アプリケーションの禁止された属性のチェックを停止するには、チェックにパッチを当てることができます..
たとえば、次のコードを
config/initializers/disable_strong_parameters.rb
module ActiveModel
module ForbiddenAttributesProtection
protected
def sanitize_for_mass_assignment(attributes)
attributes
end
alias :sanitize_forbidden_attributes :sanitize_for_mass_assignment
end
end