■目的
* CSRF(Cross-Site Request Forgeries:クロスサイト・リクエスト・フォージェリ;リクエスト強要)攻撃を 防ぐために使用CSRFの詳細について、以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/35715431.html
■使用方法
[1] 対象となるビュー・スクリプトにHtml.AntiForgeryTokenメソッドを埋め込む。 ~~~ @Html.AntiForgeryToken() ~~~ [2] コントローラ側のアクションにValidateAntiForgeryToken属性を付与する ~~~ <ValidateAntiForgeryToken()> _ Function Xxxx(ByVal model As XxxModel) As ActionResult ' ・・・中略・・・ End Function ~~~
補足1:しくみについて
1) Html.AntiForgeryTokenメソッドは、隠しフィールドを出力するとともに、 「__RequestVerificationToken_Lw__」のような名前のクッキーを発行する (「ワンタイム・トークン」と呼んでいる) ~~~ <input name="__RequestVerificationToken" type="hidden" value="tJVYeJUMiD8s9HmKuzFESe4qHadxDC0HxD/wezi2kgK+cy/jVfzKJhEJy" /> ~~~ 2) ポスト時に、データと共にトークンをサーバ側に送信する 3) アクション・メソッド側で、このトークンの存在をチェックして、 入力元のページが妥当であるかどうかを判断する
参考文献
API仕様
* HtmlHelper.AntiForgeryTokenhttps://msdn.microsoft.com/ja-jp/library/system.web.mvc.htmlhelper.antiforgerytoken.aspx
* ValidateAntiForgeryTokenAttribute
https://msdn.microsoft.com/ja-jp/library/system.web.mvc.validateantiforgerytokenattribute.aspx