0

我有一个 angularJS 应用程序,在该应用程序中,我对所有 POST、PUT 和其他非安全 Web 服务调用使用Angular 的 CSRF 保护机制。除了一种情况外,它运行良好:将文件上传到服务器的 multipart/form-data POST。

在这种情况下,当我将表单和文件数据直接发布到 Web 服务时,不涉及角度 $http 服务,因此不会像处理 XHR 请求那样将 CSRF 标头附加到请求中。

我有一些问题:

  • 我需要保护这个帖子免受 CSRF 的影响吗(我想我需要)
  • 我可以/如何让 Angular 将 CSRF 标头添加到 POST 请求中?
4

2 回答 2

0

如果你通过 jQuery 使用 XHR 的方式将文件上传到服务器,你可以添加默认 header:

$.ajaxSetup({
    headers: {
        "requestVerificationToken": myToken
    }
});
于 2013-12-05T03:58:33.650 回答
0

我最后决定,由于帖子是由表单而不是 AJAX 制作的,因此该方法应该在标准 MVC 控制器中而不是 WebAPI 控制器中。这样我就可以Html.AntiForgeryToken在表单上使用标准的 MVC 助手,ValidateAntiForgeryToken在方法上使用属性。

于 2013-12-13T16:01:33.930 回答