16.8. CSRF 攻击
跨站点请求伪造(CSRF)攻击使用来自 Web 站点已通过身份验证的用户的 HTTP 请求。任何使用基于 Cookie 的身份验证的站点都容易受到 CSRF 攻击的影响。您可以通过将状态 Cookie 与发布的表单或查询参数匹配来缓解这些攻击。
OAuth 2.0 登录规格要求状态 Cookie 与传输的 state 参数匹配。红帽构建的 Keycloak 完全实现规范的这个部分,因此所有登录都受到保护。
Red Hat build of Keycloak Admin Console 是一个 JavaScript/HTML5 应用程序,它向 Red Hat build of Keycloak admin REST API 发出 REST 调用。这些调用需要 bearer 令牌身份验证,且由 JavaScript HEKETI调用组成,因此无法进行 CSRF。您可以配置 admin REST API 以验证 CORS 源。
红帽构建的 Keycloak 中的帐户控制台可能会容易受到 CSRF 的影响。为了防止 CSRF 攻击,红帽构建的 Keycloak 会设置状态 Cookie,并在操作链接中嵌入此 cookie 的值。Red Hat build of Keycloak 会针对状态 Cookie 检查查询/格式参数,以验证同一用户是否发出这个调用。