首页 文章

CSRF保护文件上传帖子

提问于
浏览
0

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

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

我有一些问题:

  • 我是否需要保护此POST免受CSRF(我想我做)

  • 我可以/如何让Angular将CSRF标头添加到POST请求中?

2 回答

  • 0

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

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

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

相关问题