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或反向Proxy層。
- 對製作和發佈環境使用單獨的主機名稱。
- 從製作環境移除或劐免CSP標頭,以防止製作介面失敗。
- 僅將CSP套用至發佈環境。
- 如果需要更嚴格的原則,請使用網域白名單或實施自訂Nonce解決方案。
- 如需報告,請將CSP報告端點託管於平台以外。
- 在最外層的層級套用CSP (例如CDN或反向Proxy),以一致地強制執行。
- 只有在需要滿足安全性掃描要求時,才將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