Content Security Policy-Nonce-Unterstützung für Inline-Skripte in AEM Sites
Eine strikte Content Security Policy (CSP) mindert Sicherheitsrisiken wie Cross-Site-Scripting (XSS). In Adobe Experience Manager (AEM) Sites ermöglicht die Verwendung von script-src 'unsafe-inline' und 'unsafe-eval' Inline-Skripte, führt jedoch zu Sicherheitslücken. In diesem Handbuch wird erläutert, ob AEM Sites CSP-Nonces unterstützt oder sichere Alternativen für das Laden von Inline-Skripten ohne unsichere Anweisungen bereitstellt.
Um dies zu beheben, müssen Sie Inline-Skripte refaktorieren und die benutzerdefinierte Nonce-Verarbeitung implementieren.
Beschreibung description
Umgebung
Produkt: AEM as a Cloud Service - Sites
Problem/Symptome
- Inline-Skripte werden nicht geladen, wenn CSP
'unsafe-inline'und'unsafe-eval'ausschließt. - Das Entfernen dieser Flags wird als Sicherheitsrisiko gekennzeichnet, beeinträchtigt jedoch die Funktionalität.
- Eine sichere Methode wie CSP-Nonces ist erforderlich, um die Ausführung von Inline-Skripten zu ermöglichen, ohne die Sicherheit zu beeinträchtigen.
Lösung resolution
Wichtige Aspekte:
- AEM Sites bietet keine vordefinierte Unterstützung für CSP-Nonces.
- AEM dekoriert seine Inline-Skripte nicht automatisch mit Nonces.
-
Um strengere CSP-Richtlinien ohne unsichere Anweisungen durchzusetzen (d. h. ohne
unsafe-inline/unsafe-eval:- Refaktorieren von Inline-Skripten in externen JavaScript-Dateien. Weitere Informationen finden in der Dokumentation Experience Platform unter „Konfigurieren eines CSP“.
- Erstellen Sie eine benutzerdefinierte Lösung, um bei Bedarf Nonces zu generieren und einzufügen.
-
Testen Sie alle Änderungen, um sicherzustellen, dass die Seitenfunktion nicht unterbrochen wird.
Hinweise:
- Das Fehlen von CSP stellt keine inhärente Schwachstelle in AEM dar, sondern dient als zusätzliche Verteidigungsschicht. Siehe Übersicht über die Content Security in der Dokumentation zu Commerce.
- Eine benutzerdefinierte Implementierung ist für eine strengere CSP-Durchsetzung erforderlich, die über das hinausgeht, was derzeit standardmäßig unterstützt wird.