問題タブ [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.
ruby-on-rails - Homakov の GitHub ハッキングの真犯人は大量割り当てだったのでしょうか?
多くのコメンテーター ( ZDNetなど) は、GitHub のケースの弱点は、Homakov が発見したモデルが脆弱であり、その属性に対して一括割り当てが有効になっていることであると示唆しています。
ただし、問題はこれではなくbefore_filter
、コントローラーで a (またはそのようなもの) を使用して、彼が更新したテーブル内の特定の行を管理者または ID を持つユーザーのみが更新できるようにするのに失敗したことだと思いますその行に記載されています。そのようなフィルターがコントローラーに配置されていた場合、モデルの属性が一括割り当て可能であっても、テーブルは攻撃から保護されていたでしょう。
私は正しいですか?
ruby-on-rails - すべてのdb列をattr_accessibleに配置した場合、一括割り当て攻撃から安全ですか?
Rails 3.2では、すべての属性が本質的に「ブラックリストに登録」されていることを知っています。これにより、を介して各属性をホワイトリストに登録する必要がありますattr_accessible
。
ただし、テーブルのすべての列を作成すると、attr_accessible
大量割り当て攻撃に対して脆弱になりませんか?
そうでない場合は、なぜですか?
もしそうなら、ホワイトリストに登録することのポイントは何ですか?
これは本当の質問です。私の本番アプリの1つは、Deviseを機能させるためだけに、このようなものを使用する必要があるためです。
考え?
ruby-on-rails - 一括割り当てを使用したシードhas_manyリレーション
これが私の2つのモデルです。
そして、私はこのコードを使用してseed.rbにデータベースをシードしようとしています:
ただし、rake db:seedは次のエラーメッセージを表示します。
このようにデータベースをシードすることは可能ですか?
はいの場合、フォローアップの質問:いくつか検索しましたが、この種の(ネストされた?)一括割り当てを行うには、割り当てたい属性に「accepts_nested_attributes_for」を追加する必要があるようです。(おそらく、コメントモデルの'accepts_nested_attributes_for:article'のようなものです)
'without_protection:true'と同様にこれを許可する方法はありますか?データベースをシードするときに、この種の一括割り当てのみを受け入れたいからです。
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リストに追加しようとしましたが、うまくいきませんでした。それらをリストに追加する、または少なくともそれらをオーバーライドするにはどうすればよいですか?
ruby-on-rails - Railsでの保護された属性の割り当て
クリアランスレベルを決定するために保護されているユーザーモデルのフィールドがあります。したがって、保護されたままにして、一括割り当てできないようにする必要があります。したがって、3.2では属性がデフォルトで保護されていますが、それが実際に私が望む動作です。
ただし、1つのコントローラーメソッドでは、たとえばユーザーの作成やユーザーの更新時に、マネージャーがこのフィールドを割り当てることができるようにしたいと思います。
特定のコントローラーアクションにその属性を割り当てるにはどうすればよいですか?
たとえば、私は自分のコントローラーを持っています:
今、私がすることはclearance
から除外することですがparams[:user]
、その行に到達する前でも、フィルターで除外されて発生し、例外が発生するようです(その行のdebugger
直前に配置してコメントアウトしようとしましたが、それでも例外が発生しました)。
呼び出し時に保護されていない場合、保護された属性はどこでキャッチされますUser#new
か?
ruby - Rails:MassAssignmentSecurity :: Error
Ruby on Railsガイドに従うと、開発者は保護されたフィールドを一括割り当てできませんが、それを実行しようとしても例外は発生しません。しかし、私の場合、アプリケーションnew
のメソッドを介して異なるパラメータを一括割り当てします。rails
次の例外を発生させます。
なんで?私は何かを間違って理解しましたか?一括割り当て例外を取得しない方法ですか?割り当ての前にハッシュから保護された属性を削除するのは便利ではないと思います。
更新:エディションモデル:
params[:edition].inspect
:
ruby-on-rails - rails:親(トピック)コントローラーから子(投稿)を更新することによって引き起こされる一括割り当てエラー(ビューの編集)
投稿数の多いトピックを編集しようとしています。トピックの編集ページには、編集可能なトピックname
と投稿content
があります。
一括割り当てエラーは、topics_controller.rb、update
method、で発生しpost.update_attributes(params[:post])
ます。
一括割り当てエラーを回避するにはどうすればよいですか。
topic.rb
post.rb
topics_controller.rb
views / topics / edit.html.erb
ビュー/投稿/_form.html.erb
ruby-on-rails - has_many:through関係で一括割り当てエラーを回避する方法
ネストされたモデルのupdate_attributesを実行しようとしていますが、一括割り当てエラーが発生し続けます。これが私のモデルです:
ちなみにユーザーhas_oneのラインナップ。そこで、accepts_nested_attributes_forをラインナップモデルに追加することで機能すると思いましたが、機能しません。これが私のフォームです:
と私のラインナップコントローラーのアクション:
そして最後に、エラー:
保護された属性を一括割り当てできません:piece_lineups_attributes
ここで何が欠けていますか?ありがとう!
ruby-on-rails-3 - 質量割り当てエラーをテストする方法
レールをテストするときにほとんどの人が求めていることとは逆のことをしたいようです...
FOR ActiveModel::MassAssignmentSecurity::Error をテストする方法。テストケースを赤ではなく緑にする方法を知りたいだけです。
現在のテスト:
これを適切なテストとしてどのように構成すればよいですか? 私が試してみました:
しかし、それは私にとってもうまくいきません。
ruby-on-rails - Mongoid アプリですべてのフィールドを一括割り当てから保護する方法
この修正を追加しましたhttps://gist.github.com/2382288モンゴイドアプリでの一括割り当てからすべてのフィールドを保護します。
私config/initializers/mongoid.rb
はこの修正を追加しました:
私の質問は:
この修正により、大量割り当て攻撃からアプリケーションが完全に保護されますか?
または、各モデルにすべての属性を追加することをお勧めしますか?attr_accessible