AEM Sites中对内联脚本的内容安全策略nonce支持

严格的内容安全策略(CSP)可降低安全风险,如跨站点脚本(XSS)。 在Adobe Experience Manager (AEM) Sites中,使用script-src 'unsafe-inline''unsafe-eval'会启用内联脚本,但会引入漏洞。 本指南介绍AEM Sites是否支持CSP nonce或安全替代方法,以便加载没有不安全指令的内联脚本。

要解决此问题,您需要重构内联脚本并实施自定义nonce处理。

描述 description

环境

产品: AEM as a Cloud Service — 站点

问题/症状

  • CSP排除'unsafe-inline''unsafe-eval'时,无法加载内联脚本。
  • 删除这些标记将标记为安全风险,但会中断功能。
  • 需要诸如CSP nonce之类的安全方法来允许内联脚本执行而不会影响安全性。

解决方法 resolution

关键注意事项:

  • AEM Sites不对CSP随机数提供开箱即用支持。
  • AEM不会自动使用nonce修饰其内联脚本。
  1. 要在不安全指令的情况下实施更严格的CSP策略(即,不包括unsafe-inline/unsafe-eval

    • 将内联脚本重构到外部JavaScript文件中。 有关更多详细信息,请参阅Experience Platform中的配置CSP
    • 如果需要,构建自定义解决方案以生成和插入nonce。
  2. 测试所有更改以确保页面功能不被中断。

备注

  • CSP的缺失并不构成AEM的固有脆弱性;而是额外的防御层。 请参阅Commerce文档中的内容安全策略概述
  • 在当前现成的受支持之外,需要自定义实施更严格的CSP实施。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f