AEM中的内容安全策略配置冲突

严格的内容安全策略(CSP)规则经常会破坏AEM创作UI,触发有关缺少CSP标头的扫描程序警告,或者在跨创作和发布环境应用CSP时导致部署问题。 在Dispatcher或CDN层上配置CSP,使创作环境免除严格策略,并仅在需要时应用CSP。

描述 description

环境

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • AEM Managed Services
  • Adobe Developer App Builder

问题/症状

  • 无法加载创作UI工具栏、组件或iframe。
  • 安全扫描仪报告登录页面上缺少CSP标头。
  • 应用限制性CSP指令(如default-src“self”)后,站点停止运行。
  • 限制unsafe-inline或unsafe-eval的CSP指令会导致UI失败。
  • 没有可用的内置CSP报表端点。

原因

AEM不提供开箱即用的全面CSP支持。 许多核心客户端库依赖于内联JavaScript以及与严格CSP策略不兼容的行为。 全局应用CSP可能会无意中影响创作环境。 默认情况下,不会生成CSP nonce,它需要自定义实施。 默认情况下,登录页面也不包含CSP标头。

解决方法 resolution

要解决此问题,请执行以下步骤:

  1. 识别配置CSP标头的位置,如CDN、Dispatcher或反向代理层。
  2. 为创作环境和发布环境使用单独的主机名。
  3. 从创作环境中移除或免除CSP标头,以防止创作接口失败。
  4. 仅将CSP应用于发布环境。
  5. 如果需要更严格的策略,请使用域白名单或实施自定义nonce解决方案。
  6. 在平台外部托管CSP报告端点(如果需要报告)。
  7. 在最外层应用CSP(例如CDN或反向代理),以实现一致的实施。
  8. 仅在需要满足安全扫描要求时才将CSP标头添加到登录页面。
  9. 通过确认所需资源加载成功且没有发生严重CSP违规来验证配置。

相关阅读

recommendation-more-help
experience-cloud-kcs-help-kbarticles