【问题标题】:CSRFGuard and protecting links of pages sent out in emailsCSRFGuard 和保护电子邮件中发送的页面链接
【发布时间】:2016-07-24 15:53:07
【问题描述】:

我们实施了 OWASP 的 CSRFGuard 来保护我们在 Web 应用程序中的页面。例如 */myCsrfProtected.jsp。我们在应用程序中所有出现的 */myCsrfProtected.jsp 处都注入了 CSRF 令牌。一切正常。

但是,我们还有其他用例,通过电子邮件将指向此受保护页面的链接发送给用户。想想报告的链接。现在,当用户单击此链接时,令牌丢失或无效,因此 CSRFGuard 过滤器会阻止请求,假设这是一次 CSRF 攻击。 (这就是为 :-) 实现的过滤器)

有没有办法处理这个用例并允许从应用程序外部访问受 CSRF 保护的页面。

【问题讨论】:

    标签: java csrf owasp


    【解决方案1】:

    理想情况下,CSRF 令牌检查只需要对 POST 请求执行。 GET 请求应该是幂等的((对服务器没有副作用,只返回一些数据,不代表用户执行事务)。

    如果您只想在用户单击链接时返回报告,您可能不需要执行 csrf 检查。您可能仍希望确保用户已获得授权。您应该能够通过此请求的 CSRF 检查

    【讨论】:

    • GET 请求应该是幂等的((对服务器没有副作用 同意 不幸的是,我的应用程序使用 GET 请求来更改服务器状态。这是一个相当古老的应用程序。正在更改这将是一项艰巨的任务。因此,我们不能从 CSRF 验证中排除 GET 请求。另一个问题是用于创建报告和访问报告的 URL 是相同的。请求参数区分这两种操作。同样,这种行为可以无需大量成本即可更改。
    猜你喜欢
    • 2017-05-27
    • 2016-09-22
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2014-04-29
    • 1970-01-01
    相关资源
    最近更新 更多