2009-04-17 9 views
4

私たちには、おそらくクロスサイトリクエストフォージェリ(CSRF)攻撃に対して脆弱なASP.NET Webフォームアプリケーションがあります。私たちにこれを警告する単体テストを書くにはどうしたらいいですか? NUnitの使用。いくつかのヒントやポインタが素晴らしいだろう。CSRFの脆弱性のためにASP.NET Webフォームアプリケーションをテストするために単体テストを書く方法を教えてください。

答えて

0

CSRFの仕組みを理解する必要があります。ハッカーの考え方に慣れる。 CSRFを実行する自動テストを作成する必要があります。これはおそらく統合テストのような単体テスト(単一のユニットのテスト)ではありません。 CSRF攻撃の実行に成功した場合(テストが赤くなった場合)、問題を解決できます。

は、攻撃を実行する方法の詳細については、CSRF FAQをチェックしてください。そして、ここにはTesting for CSRFについての良いwi​​kiの記事があります。すでにあなたのウェブサイト上で認証されながら

1

CSRFは、攻撃者に代わってアクションを実行するため、ユーザは、(例えば、電子メール内のリンクで)だまされる攻撃です。

  • GETリクエストが副作用を持つべきではない - - すべてのアクションはPOSTリクエストのみを使用して行われるべきである

    はあなたのためにテストする必要があり、リスクを軽減するには、いくつかの方法があります。攻撃者がユーザーから発信されたPOST要求を生成することはより困難です。

  • ランダムな一意のページ単位の文字列をユーザーに送信し、サーバーに戻ったときにチェックする必要があります。ユーザーのクッキーは、攻撃者によって引き起こされた要求で送信されますが、攻撃者はフォームに格納されている文字列を認識しません。 .NETでは、私はあなたがこれのためにViewstateを使うことができると思います。特に敏感(もしくは攻撃しやすい)、アクションや不活動のいくつかの期間の後、あなたは、ユーザーが繰り返し認証を要求することができる

OWASP(Torbjørnによってリンク)については

  • は確かに優れたリソースであり、はるかに詳細な説明が含まれていますアドバイス。

  • 関連する問題