私が取り組んでいるサイトでの XSRF 攻撃を防ぐために、ダブル サブミット クッキーテクニックを使用することにしました。したがって、ここに書き留めた方法は、実際に GET 情報以外のことを行うすべてのアクションが投稿になるということです。Gets は...ええと...GETs になります。次に、投稿するすべてのフォームにキーと Cookie の組み合わせがあります。
私の質問は、これを ASP.NET MVC Web アプリケーションに実装する最も簡単な方法は何でしょうか?
私自身の質問に答えるつもりはありませんが、私の最初の考えは次のとおりです。
現在、私のコントローラーはすべて基本コントローラーから継承されているため、最初に考えたのは、OnActionExecuted メソッドをオーバーライドして、必要なフォーム フィールドの存在を確認し、そこから見つかった場合は、Cookie に対して検証し、投稿を許可することでした。続行するか、エラーページに移動します。
フォーム部分については、BeginForm と同じメソッドをすべてオーバーロードする Html.BeginSecureForm() のような独自の html 拡張メソッドを生成することを考えていましたが (必要な場合に備えて)、疑似乱数キーと Cookie を自動生成し、 Cookie とフォーム内のフォーム フィールド (IF ITS A POST!) が自動的に作成されます。
申し訳ありませんが、これがごちゃごちゃしている場合は、これらのページ全体にメモが散らばっていて、それらを整理しようとしています. その一部は、この XSRF セキュリティに関する私の設計を理解することです。