MVC3が提供するAntiForgeryTokenの使用について1つ質問があります。
私の考えを説明しようと思います。
基本的な考え方は、カタログから1つ(または複数)のアイテムを「お気に入りとしてマーク」するためのAjaxボタンです。だから私はアイテムの全リストを含むグリッドを持っています、そしてこのアイテムのそれぞれはお気に入りとして作るためのボタンを持っています。
さて...私のアイデアの実装はこれです:
ユーザーがお気に入りボタンを押すと、サーバーにGETリクエストが送信され、AntiForgeryTokenを使用してpartialViewが取得されます(これはすべて、バックグラウンドで発生するため、ユーザーには透過的です)。
そのため、フォームが読み込まれると、サイトはデータ(アイテムのIDと偽造防止トークン)を自動的に送信(POST)して、このアイテムをお気に入りとしてマークします(これもバックグラウンドで行われるため、ユーザーには何も表示されません)。
これは、Firebugでの要求/応答に関する考え方です。
GET http://localhost/User/Favorite/Mark?url=156
Response from GET:
<form action="/User/Favorite/Mark?url=156" method="post">
<input name="__RequestVerificationToken" type="hidden" value="WVXhVJJ3VNB8HrZQ6CZBPt35z2zvDjaHmlYWrnCvJoDUgeWMEGUGwm3clCD27vFAsxbs0upiRdVdo9Wsus Z7B6SU NQgV3iSYTUtE/EREWqT1Is/kwNZpdNf/3Pi7fD572pO89lTdYEjL0OlzmPJ5tmRQEUq/oMbuj0MnmPZskykGz6HzRmgC4Ez2bBoCp4" />
</form>
-----------------------------
Then Submit the form with the AntiForgeryToken:
POST http://localhost/User/Favorite/Mark?url=156
__RequestVerificationToke... WVXhVJJ3VNB8HrZQ6CZBPt35z2zvDjaHmlYWrnCvJoDUgeWMEGUGwm3clCD27vFAsxbs0upiRdVdo9Wsus Z7B6SU NQgV3iSYTUtE/EREWqT1Is/kwNZpdNf/3Pi7fD572pO89lTdYEjL0OlzmPJ5tmRQEUq/oMbuj0MnmPZskykGz6HzRmgC4Ez2bBoCp4
私の質問は簡単です。これは、AjaxリクエストのAntiForgeryTokenを取得するための良い習慣ですか?または悪い考えですか?
このアイデアがこの特定のアクションで私のサイトに悪用するバグホールを作ることができるかどうかわからないので、私はこの質問があります。
ありがとう