問題タブ [csrf]
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.
asp.net-mvc - デフォルトですべてのフォームにAntiForgeryTokenが含まれていないのはなぜですか?
AntiForgeryTokenがデフォルトですべてのASP.NETMVCフォームに含まれていないのはなぜですか?常にそれを含めることの長所は、考えられる短所を上回っているようです。また、WebフォームのHttpRequestValidationExceptionのように必要な場合は、この動作を無効にすることができます。
perl - Perl と Apache でクロスサイト リクエスト フォージェリを防ぐにはどうすればよいですか?
Perl と Apache でクロスサイト リクエスト フォージェリ (CSRF)を防ぐことができる、透過的なライブラリや簡単なものはありますか? フォームのトークンを生成してサーバー側で検証するにはどうすればよいですか?
ajax - AJAX スタイル アプリでの XSRF 保護
現在、RESTful API を介してサーバーと対話する、完全に AJAX ベースのアプリを開発しています。API に対する XSRF 攻撃から保護するための潜在的なスキームを検討しました。
ユーザーは認証を受けてセッション Cookie を受け取ります。これも各要求で二重に送信されます。
Javascript で OAuth コンシューマーを実装し、ユーザーがログインしたときにトークンを取得し、そのトークンですべてのリクエストに署名します。
私は OAuth アプローチに傾倒しています。これは主に、API へのサードパーティ アクセスを提供したいためであり、2 つの認証スキームを実装する必要はありません。
この状況で OAuth コンシューマーが機能しない理由はありますか?
security - クロス サイト リクエスト フォージェリを防止するために、このアイデアに論理的な抜け穴はありますか?
応答にトークンを追加することに依存する XSRF ソリューションをいくつか読んだことがあります。これは、POST でのみ実行されるコードを保護するのに役立ちます。
つまり、これは HTTP GET に応答するページに依存するワンステップ攻撃になります。
しかし、jquery のような優れたライブラリを使用すると、悪意のある Javascript XmlHttpRequest スクリプトを簡単に記述できるようになり、2 段階の攻撃 (GET、Anti-XSRF ビューステート/クエリ文字列/追加の Cookie などの解析) を実行してから POST を送信できます。(それとも? AES がすぐにクラックされる心配はありません。HTTP POST アクションをターゲットとする 2 ステップ XSRF 攻撃が、上記の img タグ攻撃と同じくらい簡単になることを心配する必要がありますか?)
1 ステップ攻撃は、ほとんどの場合、GET で機密性の高い操作を行わないことで阻止できると思います。両方の種類の攻撃は、Web サイトのユーザーに CAPTCHA を解決するよう要求することで阻止できます。CAPTCHA は、すべての URL に必要なクエリ文字列トークンを生成します。残りのセッションは?
これまでのところ、OCR ソフトウェアがテキストを読み取れる場合や機械的なターク コンポーネントがある場合など、CAPTCHA が失敗した場合にのみ失敗するようです。
編集: 念頭に置いている特定の攻撃は、xhr javascript またはイメージ タグを含む電子メールです。そのため、コードは電子メール クライアントのブラウザで実行されるか、ローカル ファイル システムから読み込まれた HTML ページから実行されます。簡単にするために、このサイトには XSS 脆弱性がない (つまり、サイトが応答として送信する HTML に悪意のあるユーザーが HTML を挿入する機会がない) と想像しています。
zend-framework - CSRF フォーム要素を含む Zend_Form を単体テストするにはどうすればよいですか?
Zend_Form で CSRF 非表示のハッシュ要素を使用し、ログインの単体テストを試みていますが、その要素を含める単体テストを作成する方法がわかりません。ドキュメントを見て、見つけられる限り多くのチュートリアルを読みました。私もそれらすべてをおいしくしましたが、誰もこれについて言及していません。
http - FORM POST のオリジンを検証して、同じサーバー/アプリからのものであることを確認します
FORM POST の発信元が予期されるソースからのものであることを保証するための、プラットフォーム/言語に依存しないソリューションを見つけたいと考えています。つまり、同じ Web サイト内で Page1.aspx を Page2.php に投稿します。
特にここで私がやろうとしているのは、リクエストの偽造を防ぐことです。
security - URL書き換えを使用してクロスサイトリクエストフォージェリ(XSRF / CSRF)攻撃を防ぐ方法は?
CSRF / XSRFは、さまざまな手法を使用して防止できます。
手法の1つは、クライアントからサーバーに送信されるすべての要求で、クライアントセッションに固有のトークンを使用することです。これはサーバー側で検証されています。リクエストトークンとサーバー側のトークンが一致する場合、リクエストはアプリケーションに入ることができ、一致しない場合は入ることができません。したがって、CSRF攻撃が検出されます。
この手法の背後にある考え方は私には非常に明確ですが、URLの書き換えがCSRF攻撃の防止にどのように役立つかはわかりません。セキュリティの達人はこれに光を当てることができますか?
security - すべての POST リクエストのパラメーターにセッション キーを含めることで、XSRF を防止できますか?
このアイデアはうまくいきますか?私のアプリは、ブラウザーが同じ情報 (つまり、セッション キー) の 2 つのコピーを送信したことを確認しているだけなので、かなりばかげているように思えます。
また、このチェックを忘れずに行うのは非常に面倒に思えます。Rails や CakePHP などの Web フレームワークには、XSRF 耐性のある Web アプリを簡単に作成できる機能がありますか?