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