私はPOSTが安全であるとみなされているといいます.Get noと、各コントローラのすべてのアクションで[ValidateAntiForgeryToken]を実装する必要があります。ValidateAntiForgeryTokenはPOSTで自動的に実装されますか?
質問:私は[POST]を使用するときに[ValidateAntiForgeryToken]データ注釈を使用する必要がありますか?
私はPOSTが安全であるとみなされているといいます.Get noと、各コントローラのすべてのアクションで[ValidateAntiForgeryToken]を実装する必要があります。ValidateAntiForgeryTokenはPOSTで自動的に実装されますか?
質問:私は[POST]を使用するときに[ValidateAntiForgeryToken]データ注釈を使用する必要がありますか?
デフォルトではオフです。
これには正当な理由があります。必ずしもすべてのPOSTは、あなたが、それをformタグヘルパーを使用している場合あなたが[ValidateAntiForgeryToken]
[ValidateAntiForgeryToken]
public IActionResult Post(Model model)
{
// ... etc
}
を使用してコントローラのアクションを飾る必要があり
(ご質問はasp.net-core
タグ付けされているので、特に真)形から来なければなりません<form>
マークアップに自動的に反偽造トークンが追加されます。
<form action="/MyController" method="post">
<input name="__RequestVerificationToken" type="hidden" value="fhTFfhkKNsdfhYazFtN6c4YbZAmsEwG0srqlUqqloi/OIJOIJoijojhishg" />
<!-- rest of form here -->
</form>
注:あなたはまた、手動でフォームヘルパータグを使用して/無効__RequestVerificationToken
生成を可能にすることができます
<form
asp-controller="MyController"
asp-action="MyAction"
asp-antiforgery="false"
method="post">
IウェブAPIを持っている私のクライアントはAngular4です。 –
@JohnDoeはあなたにおすすめです。なぜあなたは 'asp.net-core-mvc'であなたの質問をタグ付けしましたか? – Alex
Web APIはMVCを使用します。 –
いいえ、それは自動しない
生成されるマークアップは次のようになります実装されている場合は、ActionResultに属性を設定する必要があります。詳細については、この回答を確認してくださいhttps://stackoverflow.com/a/13622061/713789 – Adrian
公式の安定したブランチにはまだありませんが、それは2.0以降になります。https://github.com/aspnet/Docs/issues/3688 –