1

私が取り組んでいるサイトでの XSRF 攻撃を防ぐために、ダブル サブミット クッキーテクニックを使用することにしました。したがって、ここに書き留めた方法は、実際に GET 情報以外のことを行うすべてのアクションが投稿になるということです。Gets は...ええと...GETs になります。次に、投稿するすべてのフォームにキーと Cookie の組み合わせがあります。

私の質問は、これを ASP.NET MVC Web アプリケーションに実装する最も簡単な方法は何でしょうか?

私自身の質問に答えるつもりはありませんが、私の最初の考えは次のとおりです。

現在、私のコントローラーはすべて基本コントローラーから継承されているため、最初に考えたのは、OnActionExecuted メソッドをオーバーライドして、必要なフォーム フィールドの存在を確認し、そこから見つかった場合は、Cookie に対して検証し、投稿を許可することでした。続行するか、エラーページに移動します。

フォーム部分については、BeginForm と同じメソッドをすべてオーバーロードする Html.BeginSecureForm() のような独自の html 拡張メソッドを生成することを考えていましたが (必要な場合に備えて)、疑似乱数キーと Cookie を自動生成し、 Cookie とフォーム内のフォーム フィールド (IF ITS A POST!) が自動的に作成されます。

申し訳ありませんが、これがごちゃごちゃしている場合は、これらのページ全体にメモが散らばっていて、それらを整理しようとしています. その一部は、この XSRF セキュリティに関する私の設計を理解することです。

4

3 に答える 3

2

ASP.NETMVCでこれに対する組み込みのサポートを使用します。

于 2008-11-14T20:16:25.720 に答える
0

注目を集めている方法の 1 つは、暗号化トークン パターンであり、ARMOR と呼ばれるフレームワークによって実装されます。ここでの前提は、CSRF 保護を維持するためにセッションも Cookie も必要ないということです。暗号化トークン パターンは、SHA256 ハッシュ アルゴリズムによって整合性が維持される Rijndael 暗号化トークンを活用します。

ARMOR フレームワークは、MVC アプリケーションと Web API アプリケーションの両方で簡単に実装できます。完全なチュートリアルはこちら

于 2013-12-18T14:07:56.317 に答える