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 Nonce的立即可用支援。
  • 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