【问题标题】:CSRF Protection with Custom header other than X-Requested-By具有自定义标头而非 X-Requested-By 的 CSRF 保护
【发布时间】:2016-01-04 13:55:37
【问题描述】:

这与帖子https://security.stackexchange.com/questions/23371/csrf-protection-with-custom-headers-and-without-validating-token/23373#23373?newreg=9acf3e40d05f4d19a00eb58b160f8453有关

因此,如果我们决定使用自定义标头验证作为 CSRF 保护的选项,并且如果我们需要使用“X-Requested-By”以外的其他自定义标头,那么最好的方法是什么

【问题讨论】:

  • 您能描述一下您要解决的实际问题吗?你为什么不使用令牌?为什么需要使用其他一些自定义标头?为什么您不能使用您选择的任何随机标题?
  • 实际上我想保护我的 REST api 免受 CSRF 攻击,因此根据问题中提到的帖子,我们可以通过两种方式做到这一点,一种是通过自定义标头验证,另一种是每个请求一个令牌。我选择使用自定义标头验证,但我想使用我的应用程序使用的其他一些自定义标头,而不是 X-Requested-By。我正在使用 Sun Jersey Rest 库。
  • 啊,好的,这样就搞定了。那么这不是一个安全问题,而是一个编程问题。然后我会将其标记为移至 StackOverflow。
  • 那么,你有什么理由不使用那个标题吗?您在实施时有什么具体问题吗?
  • 我在使用该标头时没有任何问题,但是我们的应用程序请求中已经有很多自定义标头,所以我想介绍另一个。取而代之的是,我可以验证我现有的标题是否正确。

标签: csrf jersey-1.0


【解决方案1】:

从 CsrfProtectionFilter 的源代码中,要验证的标头定义为私有静态变量。因此无法更改标头进行验证。

private static final String HEADER_NAME = "X-Requested-By";

遵守标准并使用 X-Requested-By 是件好事。
但是,如果你想验证一个单独的标题,你需要编写自己的过滤器,这很容易。只需复制class并更改标题(不推荐)

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 2015-09-13
    • 2015-04-30
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2017-12-25
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多