c# - 来自一个页面的多个 AJAX 请求的 ASP.NET MVC HTML.AntiForgeryToken()

标签 c# asp.net asp.net-mvc csrf antiforgerytoken

我正在创建一个无需刷新页面即可发布多个 AJAX 表单的页面。

我想使用 ASP.NET MVC HTML.AntiForgeryToken() 助手来保护表单免受 CSRF 攻击。我认为页面上的每个表单都可以共享相同的 token ,但是它会允许使用相同 token 的多个请求吗?如果没有,是否有办法获取新 token 或其他方式来保护表单?

最佳答案

您可以共享相同的 token 。当然,作为一般规则,强烈建议将 Ajax 调用包装在一个统一的方法中,该方法将 CSRF token 连接到请求(无论是 GET 还是 POST,尽管从架构的角度来看 POST 更安全且更正确),所以当您进行 Ajax 调用您只需关注业务输入值,无需担心 CSRF。

编辑:阅读这篇关于使用 jQuery 1.5 及更高版本自动包装 Ajax 进行 CSRF 保护的精彩帖子和示例:http://www.codethinked.com/aspnet-mvc-ajax-csrf-protection-with-jquery-15

关于c# - 来自一个页面的多个 AJAX 请求的 ASP.NET MVC HTML.AntiForgeryToken(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5227636/

相关文章:

c# - 在多个项目中配置 AutoMapper

asp.net - "Access to the registry key ' 访问性能计数器时全局 ' is denied"

asp.net-mvc - return Json 将在指定 Url 时重定向到另一个 View

c# - 按 2 次后退按钮退出 Unity3D Android 应用程序

c# - 打印命名空间而不是字符串值

javascript - 我们可以在 asp.net 页面中使用 $(document).ready() 吗?

asp.net-mvc - 当 URL 中不存在可选参数时找不到 Web API 操作

asp.net-mvc - 如何防止直接调用操作方法?

c# - 如何在 3D 透视图中对 windows 8 UIElements 进行 Z 索引(Z 排序)?

c# - 如何从数据库动态重新安排 C# 中的 Quartz 作业调度程序?