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
要解决此问题,请执行以下步骤:
- 识别配置CSP标头的位置,如CDN、Dispatcher或反向代理层。
- 为创作环境和发布环境使用单独的主机名。
- 从创作环境中移除或免除CSP标头,以防止创作接口失败。
- 仅将CSP应用于发布环境。
- 如果需要更严格的策略,请使用域白名单或实施自定义nonce解决方案。
- 在平台外部托管CSP报告端点(如果需要报告)。
- 在最外层应用CSP(例如CDN或反向代理),以实现一致的实施。
- 仅在需要满足安全扫描要求时才将CSP标头添加到登录页面。
- 通过确认所需资源加载成功且没有发生严重CSP违规来验证配置。
相关阅读
- AEM as a Cloud Service中的CDN配置
- AEM as a Cloud Service安全概述
- 配置Adobe Experience Manager Dispatcher以防御CSRF攻击
- Dispatcher安全核对清单
recommendation-more-help
experience-cloud-kcs-help-kbarticles