ASP.NETは、偽造防止トークンが有効かどうかをどのようにチェックするのでしょうか? ASP.NETがこれらのトークンをどこに保存するのですか?そして、それらはどのように保存されますか?
短いバージョンでは、生成されたトークンは2つの場所に保存されます。(a)cookie(b)隠しフォームの値。フォームが送信されると、これらの2つの値は互いに比較され、有効かどうかが判断されます。さらに読むには:
http://www.asp.net/web-api/overview/security/preventing-cross-site-request-forgery-(csrf)-attackshttp:// www。 codeproject.com/Articles/793384/ASP-NET-Anti-Forgery-Tokens-internals
受け入れられている答えよりも明確な段階的な説明( https://docs.Microsoft.com/en-us/aspnet/web-api/overview/security/preventing-cross-site-request- forgery-csrf-attacks )
上記の説明はすべて行われているわけではありません.AjaxRequestの場合、特にgetリクエストでの偽造防止は通常、比較のために非表示の値でフォームを送信しません。代わりに、同じ内容のヘッダー値を設定する必要がありますJavaScript経由のCookie。設定するヘッダー名はデフォルトでX-XRF-Tokenヘッダー[angularjsに関連]です...もちろん、APIを保護するために特定のドメインのみでCORSを無効にするか、有効にする必要があります。SAMEORIGINクリックジャックを避けるためにも設定する必要があります。