4

Web アプリケーションに CSRF 保護を追加する必要があります。

問題は、アプリがデータベースに変更を加えるためにリンク (GET 要求) に大きく依存しているという事実にあります。

リンクはクラスを使用して生成されるため、CSRF トークンの追加パラメーターを各リンクに簡単に追加できます。

ただし、GET 要求の CSRF トークンは十分な保護ではない可能性があることを理解しています。

アプリは HTTPS 経由でのみ利用できるため、クライアント/サーバー通信中に GET パラメータを公開/盗むことはできません (ただし、履歴盗用の問題は残ります)。

GET CSRF トークン パラメータは、この設定で「十分に安全」と見なすことができますか?

そうでない場合、この問題を解決する最善の方法は何ですか? 私の頭に浮かぶ唯一のことは、各リンクをフォームにラップすることです (明示的にエーテルを作成するか、JavaScript を使用して onSubmit フォームを作成します)。

4

1 に答える 1

4

CSRF攻撃の要求に対する応答を読み取ることができるようにするには、攻撃者は被害者にJavaScriptコードを実行させる必要があります。したがって、「GET」リクエストのCSRFはほとんど役に立ちません。これは、「GET」リクエストはデータを変更してはならず、変更は「POST」のみを使用して行う必要があるという基準に従っていることを前提としています。

  1. Cookieベースの認証とSSLを使用すると、パラメータを変更しようとしている人からあなたを遠ざけることができます
  2. リプレイ攻撃を回避するために、タイムスタンプに基づいた署名を導入することをお勧めします

とはいえ、POSTリクエストがある場合は、CSRF保護を検討する必要があります。

于 2012-09-11T17:30:31.893 に答える