11

とにかく強力なパラメータの使用を無効にする方法はありますか?

そして、それがセキュリティ上の脆弱性であることは知っていますが、私は本当にそれを必要としない/望んでいません.

4

6 に答える 6

6

Stripe の Webhook からすべてのパラメーターを保存しようとしたときに、この問題に遭遇しました。

単一のインスタンスにすべてのパラメーターを許可する場合は、params オブジェクトで #to_hash を呼び出してから、初期化メソッドに渡すことができます。

元:

@my_object = MyObject.new(params[:my_object].to_hash)
于 2014-12-04T21:12:31.883 に答える
4

「無効にする」とは、Rails 3 スタイルのattr_accessible行にフォールバックすることを意味する場合、はい。

protected_attributes gemを使用するだけです。

于 2013-08-07T00:38:33.023 に答える
2

私はそうは思わない。

DHH は、このプル リクエストについてここにコメントし、強力なパラメーターに無効化スイッチを追加します

いずれにせよ、Rails 4.0 がすべての人に強力なパラメーターを強制し、それをオフにすることができなくなるとすぐに、これはすべてレガシーの問題です。

于 2013-08-07T00:34:44.290 に答える
1

アプリケーションの禁止された属性のチェックを停止するには、チェックにパッチを当てることができます..

たとえば、次のコードを

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
于 2016-05-19T12:46:38.070 に答える