【问题标题】:Is CSRF protection really required in REST? [closed]REST 中真的需要 CSRF 保护吗? [关闭]
【发布时间】:2018-10-23 05:54:30
【问题描述】:

真的希望 CSRF 保护出现在基于 REST 的应用程序中吗?

我知道从服务器端提供 JSP 的 Web 应用程序需要它。但我正在开发一个支持 Spring Boot 的 REST 服务,它将由 Angular/Bootstrap 前端使用。身份验证机制是基于 JWT 的。

由于我没有在后端 REST 服务中使用 Spring 的 CSRF 保护机制,任何人都可以解释我可以预期什么样的 CSRF 攻击?

【问题讨论】:

  • @psmears 我可以知道为什么我的问题被否决了吗?
  • 我不知道——不是我投了反对票!我只是修正了一些错别字。
  • 对不起@psmears。无论如何,感谢您纠正拼写错误:)

标签: rest csrf-protection


【解决方案1】:

由于 REST 应用程序应该是无状态,因此您无法实现传统的 CSRF 保护(包括在客户端和服务器上存储令牌,然后匹配它们)。

但是,如果您使用一种机制来传递由浏览器自动保存的凭据(例如 cookie 或 HTTP 基本身份验证),您仍然容易受到 CSRF 攻击。

在编写 REST 服务时应避免使用此类方法进行身份验证,而应使用其他方法(例如自定义 HTTP 请求标头)。

【讨论】:

  • 如果我通过 HTTPS 使用基本身份验证,它仍然容易受到攻击吗?
  • HTTPS 与 CSRF 攻击无关。
  • 除了基本的 JWT 身份验证怎么样?那还需要 CSRF 保护吗?
  • 取决于您存储令牌的位置。
  • 这意味着,如果我将令牌存储在 Angular 端的某个可以被窃取的地方,csrf 攻击是可能的。但是如果我以安全的方式将它存储在 Angular 端,就没有 csrf 的机会......可能是加密形式。
猜你喜欢
  • 2011-06-17
  • 1970-01-01
  • 2015-02-24
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
  • 2011-11-23
  • 1970-01-01
相关资源
最近更新 更多