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