問題タブ [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 投票する
2 に答える
382 参照

ruby-on-rails - Homakov の GitHub ハッキングの真犯人は大量割り当てだったのでしょうか?

多くのコメンテーター ( ZDNetなど) は、GitHub のケースの弱点は、Homakov が発見したモデルが脆弱であり、その属性に対して一括割り当てが有効になっていることであると示唆しています。

ただし、問題はこれではなくbefore_filter、コントローラーで a (またはそのようなもの) を使用して、彼が更新したテーブル内の特定の行を管理者または ID を持つユーザーのみが更新できるようにするのに失敗したことだと思いますその行に記載されています。そのようなフィルターがコントローラーに配置されていた場合、モデルの属性が一括割り当て可能であっても、テーブルは攻撃から保護されていたでしょう。

私は正しいですか?

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

ruby-on-rails - すべてのdb列をattr_accessibleに配置した場合、一括割り当て攻撃から安全ですか?

Rails 3.2では、すべての属性が本質的に「ブラックリストに登録」されていることを知っています。これにより、を介して各属性をホワイトリストに登録する必要がありますattr_accessible

ただし、テーブルのすべての列を作成すると、attr_accessible大量割り当て攻撃に対して脆弱になりませんか?

そうでない場合は、なぜですか?

もしそうなら、ホワイトリストに登録することのポイントは何ですか?

これは本当の質問です。私の本番アプリの1つは、Deviseを機能させるためだけに、このようなものを使用する必要があるためです。

考え?

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

ruby-on-rails - 一括割り当てを使用したシードhas_manyリレーション

これが私の2つのモデルです。

そして、私はこのコードを使用してseed.rbにデータベースをシードしようとしています:

ただし、rake db:seedは次のエラーメッセージを表示します。

このようにデータベースをシードすることは可能ですか?

はいの場合、フォローアップの質問:いくつか検索しましたが、この種の(ネストされた?)一括割り当てを行うには、割り当てたい属性に「accepts_nested_attributes_for」を追加する必要があるようです。(おそらく、コメントモデルの'accepts_nested_attributes_for:article'のようなものです)

'without_protection:true'と同様にこれを許可する方法はありますか?データベースをシードするときに、この種の一括割り当てのみを受け入れたいからです。

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

ruby-on-rails - ActiveMerchant購入機能レール3.2.5一括割り当て

Rails3.2.5を使用しています。ライアンベイツのチュートリアルに従います。

http://railscasts.com/episodes/145-integrating-active-merchant。私のorder.rbにはこの機能があります

rails 3.2.5はMassAssignmentSecurityを使用しているため、次のエラーが発生します。

それらをattr_accessibleリストに追加しようとしましたが、うまくいきませんでした。それらをリストに追加する、または少なくともそれらをオーバーライドするにはどうすればよいですか?

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

ruby-on-rails - Railsでの保護された属性の割り当て

クリアランスレベルを決定するために保護されているユーザーモデルのフィールドがあります。したがって、保護されたままにして、一括割り当てできないようにする必要があります。したがって、3.2では属性がデフォルトで保護されていますが、それが実際に私が望む動作です。

ただし、1つのコントローラーメソッドでは、たとえばユーザーの作成やユーザーの更新時に、マネージャーがこのフィールドを割り当てることができるようにしたいと思います。

特定のコントローラーアクションにその属性を割り当てるにはどうすればよいですか?

たとえば、私は自分のコントローラーを持っています:

今、私がすることはclearanceから除外することですがparams[:user]、その行に到達する前でも、フィルターで除外されて発生し、例外が発生するようです(その行のdebugger直前に配置してコメントアウトしようとしましたが、それでも例外が発生しました)。

呼び出し時に保護されていない場合、保護された属性はどこでキャッチされますUser#newか?

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

ruby - Rails:MassAssignmentSecurity :: Error

Ruby on Railsガイドに従うと、開発者は保護されたフィールドを一括割り当てできませんが、それを実行しようとしても例外は発生しません。しかし、私の場合、アプリケーションnewのメソッドを介して異なるパラメータを一括割り当てします。rails

次の例外を発生させます。

なんで?私は何かを間違って理解しましたか?一括割り当て例外を取得しない方法ですか?割り当ての前にハッシュから保護された属性を削除するのは便利ではないと思います。

更新:エディションモデル:

params[:edition].inspect

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

ruby-on-rails - rails:親(トピック)コントローラーから子(投稿)を更新することによって引き起こされる一括割り当てエラー(ビューの編集)

投稿数の多いトピックを編集しようとしています。トピックの編集ページには、編集可能なトピックnameと投稿contentがあります。

一括割り当てエラーは、topics_controller.rb、updatemethod、で発生しpost.update_attributes(params[:post])ます。

一括割り当てエラーを回避するにはどうすればよいですか。

topic.rb

post.rb

topics_controller.rb

views / topics / edit.html.erb

ビュー/投稿/_form.html.erb

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

ruby-on-rails - has_many:through関係で一括割り当てエラーを回避する方法

ネストされたモデルのupdate_attributesを実行しようとしていますが、一括割り当てエラーが発生し続けます。これが私のモデルです:

ちなみにユーザーhas_oneのラインナップ。そこで、accepts_nested_attributes_forをラインナップモデルに追加することで機能すると思いましたが、機能しません。これが私のフォームです:

と私のラインナップコントローラーのアクション:

そして最後に、エラー:

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

ここで何が欠けていますか?ありがとう!

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

ruby-on-rails-3 - 質量割り当てエラーをテストする方法

レールをテストするときにほとんどの人が求めていることとは逆のことをしたいようです...

FOR ActiveModel::MassAssignmentSecurity::Error をテストする方法。テストケースを赤ではなく緑にする方法を知りたいだけです。

現在のテスト:

これを適切なテストとしてどのように構成すればよいですか? 私が試してみました:

しかし、それは私にとってもうまくいきません。

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

ruby-on-rails - Mongoid アプリですべてのフィールドを一括割り当てから保護する方法

この修正を追加しましたhttps://gist.github.com/2382288モンゴイドアプリでの一括割り当てからすべてのフィールドを保護します。

config/initializers/mongoid.rbはこの修正を追加しました:

私の質問は:

この修正により、大量割り当て攻撃からアプリケーションが完全に保護されますか?

または、各モデルにすべての属性を追加することをお勧めしますか?attr_accessible