問題タブ [protect-from-forgery]
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.
android - Rails protect_from_forgery とモバイル アプリ
Rails でアプリを作成していますprotect_from_forgery
が、application.rb
. また、モバイル アプリがデータを使用して通信するための RESTful API も作成しJSON
ました。protect_from_forgery
モバイル アプリが Rails アプリケーションと対話するために、JSON リクエスト をオフにしていると主張するサイトをいくつか見かけます。
これはCSRFの問題をどのように解決しますか? 悪意のあるサイトが、ユーザーに代わって望ましくない変更を実行する JSON POST 要求を持たないようにすることはできますか?
したがって、この問題を解決するために、モバイル アプリのみが使用するカスタムmime-type
またはおそらくを使用することにし、次のことを実行しました。special key
protect_from_forgery
- csrf トークンがとして存在するかどうかを確認します
hidden div
(Web アプリの場合は true で、既定で含まれています)。 special key
存在しない場合は、これまたはを確認してくださいmime-type
。
この問題に対抗するために、これを達成する方法、または同様の方法はありますか?
アップデート
私が問題を考えすぎていたことが判明しました。Rails は「魔法のように」、例外を発生させることなく、モバイル アプリからのリクエストを自動的かつ適切に処理します。したがって、本質的には、まったく変更を加える必要はありませんでした。
私は Rails がこれをどのように実現するかを十分に確認していませんでしたが、教育的に言えば、これは興味深いことかもしれません。
ruby-on-rails - Rails での HTTP GET リクエストによる CSRF 保護
Rails はデフォルトでリクエストをCSRF
保護していないことを理解しています。HTTP GET
ただし、これらの GET 要求からユーザーに返される機密情報があり、悪意のあるサイトがこの情報を取得することは望ましくありません。
RailsHTTP GET
からのリクエストを保護する最良の方法は何ですか?CSRF
ruby-on-rails - スマートフォンで無効化された Cookie の InvalidAuthenticityToken
Rails 3.0.3 と Heroku の使用
Heroku アプリのフォーム投稿で InvalidAuthenticityToken のようなエラーが発生します。私のアプリケーションコントローラーでは、protect_from_forgery を有効にしています。
私の検索フォーム
ルート:
無効なトークン エラーは、誰かが私の検索フォームから Web サイトを検索しようとしたときに、Cookie を無効にしてスマートフォンを使用しているときに発生します。Cookie を無効にした Web ブラウザー (Firefox) で Web サイトにアクセスしようとしましたが、問題なく動作しました。
私が作成した「検索エンジン」でこの動作が得られない (このアプリでは使用できない方法で) ので、何が問題なのですか? スマートフォンと Cookie だけが無効になっているのはなぜですか?
これを機能させるにはどうすればよいですか?
ruby-on-rails - Rails CSRF Protection + Angular.js: protect_from_forgery により、POST でログアウトする
オプションがapplication_controllerに記載されている場合、protect_from_forgery
ログインしてGETリクエストを実行できますが、最初のPOSTリクエストでRailsがセッションをリセットし、ログアウトします.
オプションを一時的にオフにprotect_from_forgery
していましたが、Angular.js で使用したいと考えています。それを行う方法はありますか?
asp.net - asp.net とクロス サイト リクエスト フォージェリ
最近、アプリケーションに対して Appscan を実行したところ、レポートのいくつかのページに次のように表示されました。元の要求に次の変更が適用されました。
- HTTP ヘッダーを「http://bogus.referer.ibm.com」に設定して
ください 理由:
同じ要求が異なるセッションで 2 回送信され、同じ応答が受信されました。これは、どのパラメーターも動的ではない (セッション ID は Cookie でのみ送信される) ため、アプリケーションがこの問題に対して脆弱であることを示しています。
これを処理する方法について少し混乱しています.Request.UrlReferrerを見て、それがURLにあるものと同じホストであることを確認するか、これを処理するより良い方法がありますか?
ありがとう。
ruby-on-rails - AJAX /更新アクションを介してページ上の非ルーティングクリックを安全に登録する方法は?
要素の表示/非表示を切り替えるなど、Web ページでさまざまなクリックを登録したいと考えています。
クリックは、ログインしていないユーザーからのものです。
特定のページで行われたアクションのキーと値のペアを格納する属性を持つImpression
モデルがあります。actions
クリックイベントで、この関数でレコードを更新しています:
しかし、これはまったく安全ではないことを認識しています。理論的には、ユーザーは必要なレコードを更新できます。
どうすればこれをより安全に行うことができprotect_from_forgery
ますか? 私のユースケースで Rails を何らかの方法で利用できますか?
unity3d - Railsのprotect_from_forgeryの問題とC#/unity3Dでの警告
Railsのprotect_from_forgeryを手に入れたばかりで、アプリの簡単なログインを次のように記述しました。
クライアント側
サーバー側では、私の application_controller.rb に
ページからログインしようとしましたが、問題ないようです。少なくともログインできます。ただし、いくつか質問があります(私はwin OSを使用しています)
protect_from_forgery; のオプションに関する詳細は見つかりませんでした。null_session、if: Proc.new { |c| に続くオプションについて詳細な説明を得ることができる側の誰かがあれば幸いです。c.request.format == 'アプリケーション/json' }
フォームが CSRF 認証を使用し、通過しているかどうかを確認するにはどうすればよいですか? 送信されたフォームが「authenticity_token」であるパラメーターのセットのコンソールから見ることができますが、これは 1 つですか? はいの場合、どのように生成/定義されていますか? 私が見る限り、それは毎回同じです。
また、別のアプリケーション (Unity3D c# で記述) を以下で実行し、同じサーバーに接続しています。
今回も、クライアントは引き続きログインできますが、コンソールから次のような警告が表示されます。
私はこれについてグーグルで検索しましたが、ほとんどの答えは、単に追加する必要があると言うことのようですskip_before_filter :verify_authenticity_token
が、これは単にセキュリティチェックをバイパスするだけですか? しかし、ここでセキュリティチェックが必要なので、意味がありません...
これを修正し、ログイン セッションが protect_from_forgery でチェックされるようにするにはどうすればよいですか?
私の質問を手伝ってくれてありがとう!:)
ruby-on-rails - ActionController::Rails エンジンの InvalidAuthenticityToken
RailsでSaaSエンジンを構築しています。account#create メソッドで次のエラーが発生しています (warden gem が使用されています)。
私のアプリケーションコントローラーは次のようになります。
を :null_session に変更するprotect_from_forgery with: :exception
とエラーは解消されますが、このサインアップ アクションの後にユーザーがログインする必要があり、:null_session は API 専用であるため、これはこの問題の適切な解決策ではないと思います。
また、このサイトは、サインアップしているユーザーの Cookie を作成していませんが、これは正しくないようです。
何か案は?