我读到POST被认为是安全的,没有,我们应该在每个控制器的每个操作中实现ValidateAntiForgeryToken。
问题是:当我使用POST时,是否需要使用ValidateAntiForgeryToken数据标注
发布于 2017-07-25 14:13:42
默认情况下,它处于关闭状态。
这是有充分理由的。并不是每个帖子都必须来自表单(特别是因为你的问题被标记为asp.net-core
)
您应该使用[ValidateAntiForgeryToken]
来修饰控制器操作
[ValidateAntiForgeryToken]
public IActionResult Post(Model model)
{
// ... etc
}
如果你使用的是表单标签助手,它会自动将防伪标记添加到<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">
https://stackoverflow.com/questions/45305669
复制相似问题