CSRF対策を有効化する - ValidateAntiForgeryToken属性 †CSRF(Cross-Site Request Forgeries:クロスサイト・リクエスト・フォージェリ)とは、ひと言でいってしまうならば、外部サイトからのリクエストによって本来処理されるべきではない処理が行われてしまう攻撃のこと。 <%=Html.AntiForgeryToken() %> <input type="submit" value="Create" /> Html.AntiForgeryTokenメソッドは、以下のような隠しフィールドを出力するとともに、「__RequestVerificationToken_Lw__」のような名前のクッキーを発行する。 <input name="__RequestVerificationToken" type="hidden" value="tJVYeJUMiD9s8HmKuzFESe3qHadxDC0HxD/wezi2kgK+cy/jVfzKJhEJy" /> これは入力フォームが正当なページであることをアクション・メソッドに知らせるためのキー文字列で、「ワンタイム・トークン」などと呼ばれる場合もある。 [AcceptVerbs(HttpVerbs.Post)] [ValidateAntiForgeryToken()] public ActionResult Create(Book b, FormCollection collection) { ……中略…… } トークンのチェックを行うために、アクションそのもののコードには一切手を加える必要はない。ValidateAntiForgeryToken属性がトークンの存在をチェックし、合致しないリクエストに対しては、以降のアクションをキャンセルするためだ。 月額たった 1,050円で始められる本格的なお店のホームページ! コメント: |