2017-07-25 25 views
1

私はPOSTが安全であるとみなされているといいます.Get noと、各コントローラのすべてのアクションで[ValidateAntiForgeryToken]を実装する必要があります。ValidateAntiForgeryTokenはPOSTで自動的に実装されますか?

質問:私は[POST]を使用するときに[ValidateAntiForgeryToken]データ注釈を使用する必要がありますか?

+1

いいえ、それは自動しない

生成されるマークアップは次のようになります実装されている場合は、ActionResultに属性を設定する必要があります。詳細については、この回答を確認してくださいhttps://stackoverflow.com/a/13622061/713789 – Adrian

+0

公式の安定したブランチにはまだありませんが、それは2.0以降になります。https://github.com/aspnet/Docs/issues/3688 –

答えて

3

デフォルトではオフです。
これには正当な理由があります。必ずしもすべての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"> 
+0

IウェブAPIを持っている私のクライアントはAngular4です。 –

+0

@JohnDoeはあなたにおすすめです。なぜあなたは 'asp.net-core-mvc'であなたの質問をタグ付けしましたか? – Alex

+0

Web APIはMVCを使用します。 –

関連する問題