問題タブ [mass-assignment]

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.

0 投票する
1 に答える
1055 参照

ruby-on-rails - attr_accessible を使用しても、保護された属性を一括割り当てできません

私は JSON API を持つ Rails 3.2.2 アプリケーションに取り組んでおり、データを挿入するために CLI クライアントを使用しています。Author モデル以外は正常に動作します。新しい投稿を作成しようとすると (投稿の belongs_to :author と Author has_many :posts)、次のエラーが表示されます。

このトピックについて多くの調査を行いましたが、有効な解決策が見つかりませんでした:-(

私は attr_accessible を使用して MassAssignent エラーを回避しています。これは他のすべてのモデルでは機能しますが、「作成者」名属性では機能しません。

オーサーモデルは次のとおりです。

実際、私は whitelist_attributes を無効にして問題を解決しましたが、これは便利な方法ではないと思います (そしておそらく良い考えではありません)。

私の質問は: attr_accessible がここで機能しないのはなぜですか? また、ホワイトリストを無効にせずに問題を解決するにはどうすればよいですか?

ありがとうございました、

レヴァン

編集 :

新しい投稿を作成するメソッド:

current_author は、指定された API キーを使用して作成者を見つけます。

0 投票する
2 に答える
893 参照

ruby-on-rails - 動的ロールで一括割り当ての脆弱性を回避するにはどうすればよいですか?

ユーザー、アカウント、およびロール モデルがあります。役割は、アカウントとユーザーの間の関係タイプを保存します。

attr_accessible一括割り当ての脆弱性を防ぐために空白のままRoleにしました (そうしないと、攻撃者がロール タイプ (所有者、管理者など)、アカウントまたはユーザー ID を変更する可能性があります)。

しかし、管理者がサブスクライバーをモデレーターに変更したい場合はどうすればよいでしょうか? これにより、一括割り当てセキュリティ例外が発生します。

これを解決するにはどうすればよいですか?1 つの方法は、各役割 (所有者、管理者、モデレーター、サブスクライバー) を表す個別のモデルを作成し、STI タイプのパターンを使用することです。これにより、次のことができます。

面倒!Onwership、Moderatorship、Subscribership などを作成し、Role から継承させる必要があります。単一の役割モデルに固執したい場合、一括割り当ての脆弱性にさらされることなく動的な役割を持つにはどうすればよいですか?

おまけの質問: User has_many roles (ユーザーはロール タイプごとに 1 つのレコードを持つことができます) または has_one role (ユーザーはロール レコードを 1 つしか持つことができず、ロールが変更された場合に切り替える必要があります) パターンを使用する必要がありますか?

0 投票する
1 に答える
398 参照

ruby-on-rails - 保護された属性を一括割り当てできません: 整数

Rails を使用したアジャイル Web 開発 (第 4 版) のチュートリアルに従っていますが、約 112 ページでエラーが発生し始めます。

2 は song_id です。モデルで「#attr_accessible」を使用していません。これは、移行のためにこのコードを導入したときに発生し始めます

編集

co を再確認した後、エラーがコントローラーにあることに気付きました。このように見える

def create @cart = current_cart song = Song.find(params[:song_id]) @line_item = @cart.line_items.build @line_item.song = song @line_item = @cart.add_song(song.id)

これは問題を引き起こす行です

@line_item = @cart.add_song(song.id)

0 投票する
2 に答える
1189 参照

security - CakePHPは、変更されたデータを保存するときに、一括割り当ての脆弱性を自動的に処理しますか?

編集:

DCoderからより多くの情報を受け取った後、私がここで探していたフレーズは「大量割り当ての脆弱性」です。つまり、初期フォームに存在するかどうかに関係なく、すべての有効なフィールドをデータベースに保存するメソッドの利便性を利用します(意図したフィールドよりも多くの[おそらくより重要な]フィールドを含む操作されたPOSTデータに対して脆弱になります) )。

次に、2つの一般的な応答は、ホワイトリストとブラックリストに適切に名前が付けられます。変更を目的としたフィールドをホワイトリストに登録するか、変更してはならないフィールドをブラックリストに登録します。

次に、私の質問は次のとおりです。CakePHPは、送信フォームのフィールドのみを自動的にホワイトリストに登録しますか、それとも私(および他のCakeファン)が適切にホワイトリストに登録またはブラックリストに登録するように注意する必要がありますか?


元の質問:

Cakeは、フォームを生成してほぼ自動的に処理するための多くの優れた方法を提供します。セキュリティについて考えていたとき、Cakeは送信されたフォームにどのフィールドが存在するかを認識しているのでしょうか、それとも単に有効なフィールドを受け入れるのでしょうか。私が意味をなさない場合は、次のシナリオを採用してください(そして、誰かが私の質問を編集して、より良い表現方法を考えられる場合は、より適切な表現にすることができます):

ユーザーにプロファイルの編集を許可するとします。アクションの下に、ユーザー名、電子メール、およびパスワードのフィールドを持つフォームを作成しますedit

賢いユーザーは、is_adminフィールドをからfalseに変更したいので、firebugなどのアプリを使用して、に設定されたフィールドを含むtrueカスタム投稿データをアクションに送信します。editis_admintrue

問題は、Cakeがそれ自体でis_admin元の形式ではなかったことに気付くのでしょうか、それとも、特定のアクションで変更できるフィールドのみを明示的に指定するように注意する必要があるのでしょうか。もっと簡単な方法はありますか?

ありがとうございました!

ジェームズ

0 投票する
4 に答える
19258 参照

magento - Magentoの製品をカテゴリに一括割り当て

タイトルにあるように、製品をカテゴリに一括割り当てする必要があり、管理者からは一度に1つの製品しか編集できません。カテゴリページの[カテゴリ製品]タブからそれらを一括追加しても機能しない理由がわかりません。
そのため、phpMyAdminなどを使用するなど、高速な別のメソッドが必要です。

何か助けはありますか?

前もって感謝します!

0 投票する
2 に答える
1344 参照

ruby-on-rails - ネストされたfields_forでの一括割り当てエラー

私はこの質問が何度も聞かれたことを知っています。私はすでに問題なく何度もアプリにネストfields_forしているので、今回はなぜ機能しないのか混乱しています。このトピックを再度取り上げたことをお詫び申し上げます。

ユーザーモデルがあります。ユーザーは多くのアカウントを持つことができます。ユーザーが少なくとも1つのアカウントなしで存在するのを防ぐために、アカウントsemantic_fields_forを設定するための1つの入力だけで、新しいユーザーフォームにネストされていますrole_id

クラスユーザー

クラスアカウント

ユーザー/新規

つまり、要約すると、ユーザーとアカウントの間に関連付けが設定されています。ユーザーモデルにはが含まれaccepts_nested_attributes_for、ユーザーモデルにはが含まれattr_accessible :accounts_attributessemantic_fields_for正しく設定されています。私が得るエラーは次のとおりです。

保護された属性を一括割り当てできません:アカウント

送信されたフォームのスタックトレースには、すべての正しい変数が含まれています。アカウントrole_idはネストされた属性によって正しく設定されています。レコードは、一括割り当てエラーのために単に拒否されていますが、私の属性はすべて適切に保護されているようです。

Rails3.2.3およびFormtastic2.2の使用。

編集済み

クラスUsersController

def new

終わり

ユーザー/新規

0 投票する
4 に答える
8331 参照

ruby-on-rails - 保護された属性を一括割り当てできません:first_name、last_name、email、password、password_confirmation

devise gemを使用したuserモデルがありますが、どのフィールドにもありませんが、エラーが発生します。attr_accessible

保護された属性を一括割り当てできません

以下の私Userのクラス

0 投票する
1 に答える
138 参照

ruby-on-rails - 一括割り当てコードが機能しない理由

Rails 3.1.4 アプリの sys_log モデルで定義された大量の割り当てがあります。

ログを保存するメソッドが application_controller で定義されています。

ただし、一括割り当ては機能しません。警告メッセージは次のとおりです。

:new_log が定義どおりに機能していません。上記のコードの何が問題になっていますか? 本当にありがとう。

0 投票する
1 に答える
395 参照

ruby-on-rails - 大量割り当てを防止する Rails 親子フォームの例

Rails 3.2 を使用しており、一括割り当てを防止したいと考えています。親子関係があります。

私の routes.rb では、子リソースが親リソース内にネストされていません。これで、で新しい子を作成するためのリンクができましたnew_child_path(@parent.id)。これは私に指示しlocalhost:3000/child/new?parent_id=1、私はnew行動に移します:

_form.html.erb私の質問は:子エンティティに対してmy を記述する方法は? 私の作成アクションでは、一括割り当てのために分割されるため、f.hidden_field使用できません。parent_id一方、parent_id子供を救うときは、親を知るために通過する必要があります。これについては、適切な実例が見つかりませんでした。

0 投票する
1 に答える
455 参照

ruby-on-rails-3 - attr_encrypted (attr_encryptor) gem 使用時の MassAssignmentSecurity エラー

Rails 3.2.3 アプリでは、attr_encrypted の danpal によるフォークである attr_encryptor を使用しています。hereの指示に従っていますが、新しいPatientレコードを作成しようとすると、次のエラー メッセージが表示されます。

指示が示すように、暗号化されていない対応する列を削除しながら、、、および列をテーブルencrypted_#{field}encrypted_#{field}_salt追加encrypted_#{field}_ivしました。Patients

Patientモデルは次のようになります。

コントローラーのメソッドは次のようになりcreateます。Patient

私は何を間違っていますか?助けてくれてありがとう!