ValidateAntiForgeryToken: その目的と実装
MVC Web アプリケーションのフォームは、クロスサイト リクエスト フォージェリ (CSRF) 攻撃のターゲットになることがよくあります。 CSRF 攻撃は、悪意のある Web サイトが信頼できる Web サイトにリクエストを送信し、許可されたユーザーのブラウザをだましてそれらのリクエストを送信させることで発生します。これにより、攻撃者が不正なアクションを実行できるようになります。
この脆弱性に対処するために、.NET MVC フレームワークは ValidateAntiForgeryToken を提供します。属性は、CSRF 攻撃を防ぐ上で重要な役割を果たします。この属性は、特定のアクション メソッドに送信されたフォームが、外部ソースからではなく実際にサーバーから送信されたものであることを保証します。
ValidateAntiForgeryToken の仕組み
アクション メソッドがValidateAntiForgeryToken で装飾された MVC フレームワークは、一意のワンタイム トークンを生成し、HTML フォームの非表示に埋め込みます。 @Html.AntiForgeryToken() ヘルパー メソッドを使用するフィールド。このトークンは、ユーザー、セッション、ブラウザーに固有です。
ユーザーがフォームを送信すると、フレームワークは非表示フィールドのトークンと以前に生成したトークンを比較します。トークンが一致すると、フォームの送信が検証されます。それ以外の場合は、エラーが発生して送信が拒否され、CSRF 攻撃が軽減されます。
使用例
MVC 4 で ValidateAntiForgeryToken 属性を実装するには、次の手順に従います。
したいアクションメソッドを装飾します[ValidateAntiForgeryToken] 属性で保護します:
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(MyModel model) { // Code to handle the form submission }
フォームのフォーム タグ内に @Html.AntiForgeryToken() への呼び出しを追加します:
<form action="@Url.Action("Create", "MyController")" method="post"> @Html.AntiForgeryToken() <!-- Other form controls --> </form>
注: @Html.AntiForgeryToken() ヘルパー メソッドは、フォームのフォーム タグ内、ただし他のすべてのフォーム コントロールの前に配置する必要があります。
これらの手順に従うことで、MVC Web アプリケーションを CSRF 攻撃から効果的に保護し、整合性を確保できます。フォーム送信の数。
以上がValidateAntiForgeryToken は ASP.NET MVC で CSRF 攻撃をどのように防ぐのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。