問題タブ [strong-parameters]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - params ハッシュをスライスすると、一括割り当てでセキュリティ上の問題が発生するのはなぜですか?
一括代入によるセキュリティ リスクを防ぐ公式の方法は、attr_accessibleを使用することです。ただし、一部のプログラマーは、これはモデルの仕事ではないと感じています (または少なくともモデルの仕事ではありません)。コントローラーでこれを行う最も簡単な方法は、paramsハッシュをスライスすることです。
ただし、ドキュメントには次のように記載されています。
attr_accessible の代わりに Hash#except または Hash#slice を使用して属性をサニタイズしても、十分な保護が得られないことに注意してください。
何故ですか?パラメータのホワイトリストスライスが十分な保護を提供しないのはなぜですか?
更新: Rails 4.0では、パラメーターの洗練されたスライスである strong-parameters が出荷される予定です。
ruby-on-rails - MongoidとMassの割り当て
私は次のmogoidドキュメント定義/クラスを持っています:
次に、次のコントローラーと保存方法があります。
これは私には間違っているようで、大量割り当ての問題が発生する可能性があります。
人々は通常これからどのように保護し、強力なパラメータの宝石を使用するのは良い考えですか?
ruby-on-rails - 工夫と強いパラメータ
4.0 で強力なパラメーターが Rails コアに追加される可能性が高いため、この宝石 (デバイス + 強力なパラメーター) の両方を統合する方法を知りたいです。
どんな助けでも大歓迎ですありがとう
ruby-on-rails-3.2 - Rails管理者による強力なパラメータ
strong_parametersを使用するRails3.2アプリを作成しましたが、問題なく動作します。私は次のようにモデルごとにこれを行いました:
私のコントローラーには、paramsハッシュキーなどを許可する適切なコードがあります。
ここで、モデルを管理するためにrails_adminを追加したいのですが、rails_adminコントローラーは強力なパラメーターを使用するように設計されていないため、ActiveModel::ForbiddenAttributes
予想どおり、例外が発生します。
だから私の質問は:これを回避する方法はありますか、それともrails_adminをフォークして、自分で追加する必要がありますか?わからない簡単な解決策がある場合は、その余分な作業を避けたいと思います。
ありがとう!
ruby-on-rails - CanCan load_and_authorize_resource は禁止された属性をトリガーします
強力なパラメーターを使用する標準の RESTful コントローラーがあります。
私config/initializers
はファイルを持っていますstrong_parameters.rb
CanCan'sload_and_authorize_resource
に簡単な呼び出しを追加すると、
テストのどこ@attr
で次のように定義されていますか
テストでは、ユーザーにログインし、管理者になるために必要な役割を与えるようにすべてを適切にセットアップしたので、そうではないことがわかりました。これにより ForbiddenAttributes がトリガーされる理由がわかりません。私が見落としていたのは単純なことだと確信しています。他の誰かがこの問題に遭遇し、解決策を見つけましたか?
ruby-on-rails - ActiveAdminを強力なパラメータで動作させる方法は?
更新:この質問は、ActiveAdminにすでに解決策がある前に尋ねられました。Josephが述べているように、ActiveAdminのドキュメントには現在この情報が含まれていますが、ここでの回答は、古いバージョンのActiveAdminを使用しているユーザー向けに提供されています。
Rails3.2.8のActiveAdmin0.5.0でstrong_parameters0.1.4が使用されている場合、使用しているモデルが次のものを含めてStrongParametersを使用している場合。
次に、レコードを作成/編集しようとすると、ログに次のエラーが表示されます。
ruby-on-rails - rails-api と strong_parameters を連携させる
含める場合
私の中で一緒に、のようGemfile
に呼んでいますparams.require
呼び出しで次のエラーで失敗しrequire()
ます。
バックトレースは、strong_parameters
' ActionController::StrongParameters
'require()
メソッドがヒットしないことを示しています。
ruby-on-rails - Rails 3.2.8 のストロング パラメータ
このビデオでは、コントローラーを介して入ってくる入力を保護しながら、モデルとスペックを介して大量の割り当てを行うことができると述べています。ただし、3.2.8 で strong_parameters を使用する場合、これが機能として文書化されているのを見たことがありません。
私はActiveModel::ForbiddenAttributesProtection
自分のモデルに混ぜconfig.active_record.whitelist_attributes = false
てconfig/application.rb
. attr_accessible
また、モデルからすべての呼び出しを取得しました。
ミックスインの有無にかかわらず、大量割り当てエラーが発生します。
ActiveModel::MassAssignmentSecurity::Error:
Can't mass-assign protected attributes: home_phone, cell_phone
何か不足していますか?
ruby-on-rails - Rails 4強力なパラメーター:すべての属性を許可しますか?
Rails4の強力なパラメーターを使用してWebアプリを構築しています。
管理バックオフィスコントローラーを構築するとき、すべてのモデル属性を許可するための最良の方法は何でしょうか。
今のところ、私はこれを書いた:
もっと良い方法を考えますか?
ruby-on-rails - Rails4.0の強力なパラメータはハッシュを指すキーを持つ属性をネストしました
Rails 4.xベータ版で遊んでいて、ネストされた属性をcarrierwaveで機能させようとしていました。私がしていることが正しい方向であるかどうかはわかりません。周りを検索し、最終的にレールのソースと強力なパラメータを調べた後、以下のメモを見つけました。
つまり、has内のすべての属性をすべて指定する必要があるということで、私は次のことを試しました。
Paramの例:
コントローラ
上記は「機能」していません(carrierwaveをトリガーしていません)が、私が見つけた標準のネストされた例を使用したときにエラー(許可されていないパラメーター:ファイル名)が発生しなくなりました。
誰かが助けることができればそれは素晴らしいでしょう。ハッシュを指すキーがネストされた例を見つけることができませんでした。