【问题标题】:CSRF protection in web applicationWeb 应用程序中的 CSRF 保护
【发布时间】:2014-06-10 23:20:52
【问题描述】:

我的应用程序具有 apache 模块提供的 CSRF 保护。我的应用程序包含一些允许上传文件的页面,如下所示:

<form:form method="post" action="my.controller" enctype="multipart/form-data" id="form">

当我们将 apache 版本从 httpd-2.2.3 更新为 httpd-2.2.15 时,所有东西都运行良好。

我搜索了一段时间,发现问题可能与我的表单中的 multipart/form-data 参数有关。在这种情况下,表单发送为不安全。我还发现 spring 可以通过 spring doc http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html#csrf-multipartfilter

中的 MultipartFilter 处理上述内容

我是 CSRF 方面的新手。很高兴知道是否可以将 spring CSRF protectionapache 配置一起使用来处理此类情况。

我还找到了解决方法,可以为所需的 URL 禁用 CSRF,例如

RewriteRule /url/mycontroller.controller - [E=CSRF_IGNORE:yes]

但我不确定它在哪里是正确的。

【问题讨论】:

    标签: java spring apache csrf


    【解决方案1】:

    以下是我的建议:

    如果不需要,请删除 enctype,因为包括 CSRF Guard 在内的一些 CSRF 库不支持 multipart/form-data。

    如果您使用隐藏属性设置 CSRF 令牌,请尝试将令牌附加到操作属性中。 这是这个链接:https://code.google.com/p/csrf-filter/

    如果您仍然遇到同样的问题,您可能需要从 CSRF 检查中排除该 URL。

    【讨论】:

    • 我不确定我是否理解您关于谷歌过滤器的观点。请解释一下,它应该以哪种方式解决 multipart/form-data 参数的问题。谢谢
    猜你喜欢
    • 2018-07-10
    • 1970-01-01
    • 2019-09-08
    • 2010-12-15
    • 1970-01-01
    • 2014-02-09
    • 2010-09-13
    • 1970-01-01
    相关资源
    最近更新 更多