配置防伪造令牌单使用MVC asp.net

本文关键字:MVC asp net 单使用 令牌 伪造 配置 | 更新日期: 2023-09-27 18:13:01

我想为每个请求修改AntiForgeryToken。

我读了这些帖子:

  • 是否有可能使AntiForgeryToken值在ASP中。. NET MVC更改后,每次验证?
  • ASP。. NET MVC防伪造令牌不安全

最初的帖子明确排除了这种可能性,但后者似乎提到它"相当简单"。然而,我不太明白如何实现令牌的一次性使用。

在我目前的实现下,我将令牌作为安全的http-only cookie交付。但它在整个过程中保持不变。我不在乎我的实现是否破坏了返回按钮。有什么建议吗?

配置防伪造令牌单使用MVC asp.net

因为我们没有你的例子不确定你是如何使用这个,但像这样一个简单的表单确实在表单

的每个请求上显示一个新的令牌
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)<fieldset>
    <legend>Person</legend>
    <div class="editor-label">
        @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.Address)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Address)
        @Html.ValidationMessageFor(model => model.Address)
    </div>
    <p>
        <input type="submit" value="Save" />
    </p>
</fieldset> }
上面的表单显示了每个请求中的不同值,如
<input name="__RequestVerificationToken" type="hidden" value="53WW641jzT5QWcIrrLltqF0OGt79US1eBwue1MQU6lW200CxUiD6fcC949RZee4gcNrFNnaP5QYFi6lJd_QmuUqSfex7wWHwWjUC30_kVrI1" />

<input name="__RequestVerificationToken" type="hidden" value="QXHlA8N9g_95YbPeEpjPHhjQFV9IMNJf7eEdnPnADH9BPgQg_DQQKQqf9diPAxMQWJoBcT6FeXCIECe-Qd6Q6wA5BimVlU9K0C67nokzuXQ1" />

这里有更多关于SO的信息,也参考了这里以外的其他详细信息