CSRF保护文件上传帖子

时间:2013-12-03 17:20:47

标签: angularjs file-upload multipartform-data csrf-protection

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

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

我有几个问题:

  • 我是否需要保护此POST免受CSRF(我想我这样做)
  • 我可以/如何让Angular将CSRF标头添加到POST请求中?

2 个答案:

答案 0 :(得分:0)

如果您通过XQuery通过jQuery将文件上传到服务器,则可以添加默认标题:

$.ajaxSetup({
    headers: {
        "requestVerificationToken": myToken
    }
});

答案 1 :(得分:0)

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