Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Inhaltssicherheitsrichtlinie (Content Security Policy, CSP) ist eine zusätzliche Sicherheitsebene, mit der einige Arten von Webangriffen wie websiteübergreifende Skripts, Dateneinfügungsangriffe, Websitedefacement oder die Verteilung von Schadsoftware erkannt und abgemildert werden können. CSP bietet eine umfangreiche Reihe von Richtliniendirektiven, mit denen die Ressourcen gesteuert werden können, die eine Websiteseite laden kann. Jede Richtlinie definiert die Einschränkungen für einen bestimmten Ressourcentyp.
Voraussetzungen
Important
Testen Sie zuerst CSP-Änderungen in einer Entwicklungsumgebung. Das Aktivieren oder Ändern von CSP auf vorhandenen Websites kann die Funktionalität unterbrechen, wenn die Richtlinie keine Skripts von Drittanbietern, benutzerdefinierten Code oder externen Ressourcen berücksichtigt.
Verwenden Sie beim Vornehmen von CSP-Änderungen den folgenden Ansatz:
- Beginnen Sie mit dem Modus "Nur Melden", um Verstöße zu identifizieren, ohne Ressourcen zu blockieren.
- Überprüfen Sie die Browserkonsole für CSP-Verletzungsmeldungen.
- Fügen Sie erforderliche Quellen inkrementell basierend auf gefundenen Verstößen hinzu.
- Wechseln Sie zum Erzwingungsmodus, sobald keine kritischen Verstöße gemeldet werden.
Standard-CSP-Richtlinie
Important
Für Websites, die nach dem 10. November 2025 erstellt wurden, ist CSP standardmäßig mit der folgenden Richtlinie aktiviert:
script-src 'self' content.powerapps.com content.powerapps.us content.appsplatform.us content.powerapps.cn 'nonce';
style-src 'unsafe-inline' https:;
Diese Standardrichtlinie:
- Lässt Skripts vom Ursprung Ihrer Website zu ('self')
- Erlaubt Skripte aus Power Pages-Inhaltsbereitstellungsdomänen
- Verwendet die nonce-basierte Skriptvalidierung für Inline-Skripts.
- Ermöglicht Inline-Stile und Stile aus HTTPS-Quellen
Für Websites, die vor dieser Änderung erstellt wurden: CSP ist möglicherweise nicht aktiviert. Wir empfehlen, sie durch Konfigurieren der HTTP/Content-Security-Policy Websiteeinstellung zu aktivieren. Eine schrittweise Anleitung finden Sie im Migrationshandbuch für vorhandene Websites> .
Grundlegendes zu den Standardrichtlinien
| Direktive | Wert | Purpose |
|---|---|---|
script-src |
'self' |
Lässt Skripts vom Ursprung Ihrer Website zu |
script-src |
content.powerapps.com, content.powerapps.us, content.appsplatform.us, content.powerapps.cn |
Ermöglicht Power Pages-Plattform-Skripte |
script-src |
'nonce' |
Aktiviert die Nonce-basierte Überprüfung für Inline-Skripte |
style-src |
'unsafe-inline' |
Ermöglicht Inline-Stile (erforderlich für viele Websitefunktionen) |
style-src |
https: |
Ermöglicht Formatvorlagen aus einer beliebigen HTTPS-Quelle. |
Anpassen von CSP
Sie können die Standard-CSP-Richtlinie ändern, erweitern oder deaktivieren, um die spezifischen Anforderungen Ihrer Website zu erfüllen.
Ändern oder Deaktivieren von CSP
- Melden Sie sich bei Power Pages an, und öffnen Sie Ihre Website zur Bearbeitung.
- Wählen Sie im linken Bereich Weitere Elemente (...) >Portalverwaltung aus.
- Wählen Sie " Websiteeinstellungen" in der Portalverwaltungs-App aus.
- Suchen Sie die Website-Einstellung HTTP/Content-Security-Policy, oder erstellen Sie sie.
- Ändern Sie den Wert nach Bedarf. Um CSP zu deaktivieren, löschen Sie den Websiteeinstellungswert (lassen Sie ihn leer), anstatt die Einstellung zu löschen.
Hinzufügen externer Skriptquellen
Wenn Ihre Website externe JavaScript-Bibliotheken verwendet (z. B. Analysen, Chat-Widgets), fügen Sie der Direktive ihre script-src Domänen hinzu:
script-src 'self' content.powerapps.com content.powerapps.us
content.appsplatform.us content.powerapps.cn 'nonce'
https://cdn.example.com https://analytics.example.com;
style-src 'unsafe-inline' https:;
Hinzufügen zusätzlicher Direktiven
Sie können bei Bedarf weitere CSP-Direktiven hinzufügen. Zu den allgemeinen Ergänzungen gehören:
| Direktive | Example | Purpose |
|---|---|---|
img-src |
img-src 'self' https: data:; |
Steuern von Bildquellen |
font-src |
font-src 'self' https://fonts.gstatic.com; |
Schriftartquellen steuern |
connect-src |
connect-src 'self' https://api.example.com; |
Steuerung der AJAX-/Abrufziele |
frame-src |
frame-src 'self' https://www.youtube.com; |
Quellen steuern iframe |
frame-ancestors |
frame-ancestors 'self'; |
Steuern, wer Ihre Website einbetten kann |
media-src |
media-src 'self' https:; |
Steuern von Audio-/Videoquellen |
object-src |
object-src 'none'; |
Blockieren von Plug-Ins (Flash, Java-Applets) |
Nonce-Unterstützung
Was ist eine Nonce?
Eine Nonce (einmal verwendete Zahl) ist ein kryptografischer Zufallswert, der für jede Seitenanforderung generiert wird. Wenn Sie Nonce aktivieren, werden nur Inlineskripts, die ein übereinstimmendes Nonce-Attribut enthalten, ausgeführt.
Wie funktioniert Nonce in Power Pages?
Wenn Sie "Nonce" in Ihre CSP-Richtlinie einschließen:
- Power Pages generiert einen eindeutigen Nonce-Wert für jeden Seitenaufruf.
- Power Pages fügt die Nonce automatisch zu Inlineskript-Tags aus vertrauenswürdigen Quellen hinzu.
- Power Pages blockiert Inlineskripts ohne die entsprechenden Nonce.
- Dieser Prozess verhindert, dass injizierte schädliche Skripts ausgeführt werden.
- Power Pages sichert Inline-Ereignishandler über eine automatische Hashgenerierung separat ab.
Nonce ist standardmäßig aktiviert
Die standardmäßige CSP-Richtlinie enthält 'nonce' in der script-src-Direktive und bietet automatischen Schutz für Inline-Skripts aus vertrauenswürdigen Quellen.
Wie funktioniert Nonce mit benutzerdefinierten Skripts?
Power Pages behandelt Nonce-Einfügungen in den meisten Szenarien automatisch:
Flüssige Vorlagen: Power Pages fügt das Nonce-Attribut automatisch in Inlineskripts ein, die nach dem Rendern durch Liquid-Vorlagen gerendert werden. Von den Herstellern sind keine Maßnahmen erforderlich.
Inline-Ereignishandler: Power Pages sichert Ereignishandler automatisch durch Hash-Generierung. Es ist keine manuelle Aktion erforderlich.
Dynamisch erstellte Skripts: Skripts, die zur Laufzeit über JavaScript (z. B. mit Hilfe von
document.createElement) erstellt wurden, können die serverseitige Nonce nicht empfangen. Verschieben Sie nach Möglichkeit solche Skripts in externe Dateien, und fügen Sie der Direktive ihrescript-srcQuelldomänen hinzu.
Testen mit Nur-Bericht-Modus
Bevor Sie eine CSP-Richtlinie erzwingen, verwenden Sie den „Nur melden“-Modus, um zu identifizieren, was die Richtlinie blockieren würde, ohne tatsächlich zu blockieren:
- Erstellen Sie in der Portalverwaltung eine Websiteeinstellung mit dem Namen
HTTP/Content-Security-Policy-Report-Only. - Legen Sie den Wert auf die CSP-Richtlinie fest, die Sie testen möchten.
- Öffnen Sie Ihre Website in einem Browser, und überprüfen Sie die Konsole auf Verletzungsberichte.
- Beheben Sie alle Verstöße, indem Sie die Richtlinie anpassen.
- Sobald Sie zufrieden sind, verschieben Sie den Richtlinienwert in den
HTTP/Content-Security-Policy(Erzwingungsmodus). - Löschen Sie die
HTTP/Content-Security-Policy-Report-OnlyWebsiteeinstellung.
Note
Sie können beide HTTP/Content-Security-Policy und HTTP/Content-Security-Policy-Report-Only gleichzeitig verwenden. Verwenden Sie den Nur-Bericht-Modus, um strengere Richtlinien zu testen, während eine Basisrichtlinie erzwungen wird.
Migrationshandbuch für vorhandene Websites
Führen Sie für Websites, die erstellt wurden, bevor CSP standardmäßig aktiviert wurde, die folgenden Schritte aus, um CSP zu aktivieren:
Schritt 1: Überprüfen des aktuellen CSP-Status
- Öffnen Sie die Portalverwaltung>Websiteeinstellungen.
- Suchen Sie nach
HTTP/Content-Security-Policy. - Wenn die Einstellung nicht vorhanden ist, ist CSP nicht auf Ihrer Website aktiviert.
Note
Wenn Sie CSP nicht konfigurieren, zeigt die Integritätsprüfung der Website eine Warnung an: "HTTP/Content-Security-Policy Websiteeinstellung fehlt oder falsch konfiguriert ist." Sie können diese Warnung in der Integritätsdiagnose Ihrer Website überprüfen.
Schritt 2: Starten mit dem modus "Nur Bericht"
Erstellen Sie eine Websiteeinstellung namens
HTTP/Content-Security-Policy-Report-Onlymit der Standardrichtlinie.script-src 'self' content.powerapps.com content.powerapps.us content.appsplatform.us content.powerapps.cn 'nonce'; style-src 'unsafe-inline' https:;Durchsuchen Sie Ihre Website, und überprüfen Sie die Browserkonsole auf Verstöße.
Fügen Sie der Richtlinie alle erforderlichen externen Domänen hinzu.
Schritt 3: Aktivieren der Erzwingung
- Erstellen Sie die
HTTP/Content-Security-Policy-Websiteeinstellung mit Ihrer getesteten Richtlinie. - Entfernen Sie optional die Einstellung "Nur Bericht".
- Überwachen Sie Probleme, und passen Sie sie bei Bedarf an.
Considerations
Vorhandene Websites werden nicht automatisch für die Durchsetzung auf CSP umgestellt.
Die automatische Nonce-Einfügung verarbeitet benutzerdefiniertes JavaScript, das über den Code-Editor zu mit Liquid gerenderten Inhalten hinzugefügt wurde.
Sie müssen explizit Domains für Skripts von Drittanbietern (Analyse, Chat-Widgets usw.) zu
script-srchinzufügen.
Problembehandlung
Skripts aus externen Quellen werden blockiert.
Symptom: Die Browserkonsole zeigt einen CSP-Verstoß für eine Skriptquelle an.
Lösung: Überprüfen Sie zunächst, ob die externe Quelle vertrauenswürdig ist und für Ihre Website erforderlich ist. Fügen Sie nur Domänen aus Quellen hinzu, die Sie vertrauen. Fügen Sie nach der Überprüfung die Domäne des Skripts zu Ihrer script-src Direktive hinzu:
script-src 'self' content.powerapps.com content.powerapps.us
content.appsplatform.us content.powerapps.cn 'nonce'
https://blocked-domain.com;
style-src 'unsafe-inline' https:;
Inlineskripts werden nicht ausgeführt
Symptom: Benutzerdefinierte Inlineskripts werden nicht ausgeführt; CSP-Nonceverletzung in der Konsole.
Lösung: Bei flüssig gerenderten Inhalten fügt Power Pages automatisch das Nonce-Attribut ein. Wenn Ihre Skripts weiterhin blockiert sind, stellen Sie sicher, dass sich das Skript in einer Liquid-Vorlage oder einer server-gerenderten Seite befindet, auf der automatische Nonce-Injektion angewendet wird. Für dynamisch erstellte Skripts sollten Sie diese in externe .js Dateien verschieben und die Quelldomäne zu Ihrer CSP-Richtlinie hinzufügen.
Bilder oder Schriftarten werden nicht geladen
Symptom: Bilder werden fehlerhaft angezeigt, oder benutzerdefinierte Schriftarten werden nicht gerendert. Die Browserkonsole zeigt CSP-Verletzungen für img-src oder font-src.
Lösung: Fügen Sie ihrer CSP-Richtlinie die entsprechende Quelldirektive hinzu:
img-src 'self' https: data:;
font-src 'self' https://fonts.gstatic.com
https://fonts.googleapis.com;
Iframes werden nicht angezeigt
Symptom: Eingebettete Inhalte (YouTube, Karten, Power BI) werden nicht geladen. Die Browserkonsole zeigt CSP-Verstöße für frame-src.
Lösung: Hinzufügen frame-src mit den erforderlichen Domänen:
frame-src 'self' https://www.youtube.com
https://app.powerbi.com;
Widgets von Drittanbietern funktionieren nicht
Symptom: Chat-Widgets, Analyseskripts oder andere Drittanbieterintegrationen werden nicht ordnungsgemäß geladen oder funktionieren.
Lösung: Widgets von Drittanbietern erfordern häufig mehrere Direktiven. Überprüfen Sie die Browserkonsole auf alle Verletzungstypen, und fügen Sie die erforderlichen Quellen hinzu. Beispiel für ein Chat-Widget:
script-src 'self' content.powerapps.com 'nonce'
https://widget.chatprovider.com;
style-src 'unsafe-inline' https:;
connect-src 'self' https://api.chatprovider.com;
frame-src 'self' https://widget.chatprovider.com;
img-src 'self' https: data:;
Referenz zu Websiteeinstellungen
| Websiteeinstellung | Purpose | Standard |
|---|---|---|
| HTTP/Content-Security-Policy | Die vollständige CSP-Richtlinie (Erzwingungsmodus) | Siehe Standardrichtlinie oben (nur neue Websites) |
| HTTP/Content-Security-Policy-Report-Only | CSP-Richtlinie im Modus "Nur Bericht" (protokollierte, nicht blockierte Verstöße) | Nicht festgelegt |
Bewährte Methoden
- Beginnen Sie mit der Standardrichtlinie: Der Standard-CSP bietet einen starken Schutz, während Power Pages-Features ordnungsgemäß funktionieren können.
- Testen Sie zuerst mit dem Modus "Nur Bericht": Verwenden Sie HTTP/Content-Security-Policy-Report-Only, um zu identifizieren, was vor der Erzwingung blockiert werden würde.
-
Inkrementelles Hinzufügen von Quellen: Fügen Sie bei der Integration externer Dienste nur die erforderlichen spezifischen Domänen hinzu. Vermeiden Sie breite Wildcards wie
https:fürscript-src. -
Vermeiden Sie
unsafe-inlineSkripte: Der auf 'nonce' basierte Ansatz ist sicherer, als alle Inline-Skripte zuzulassen. Die Standardrichtlinie verwendet Nonce stattunsafe-inlinefürscript-src. - Überwachen der Browserkonsole: CSP-Verstöße werden in der Browserkonsole protokolliert und helfen dabei, blockierte Ressourcen zu identifizieren.
- Regelmäßige Überprüfung und Verschärfung von Richtlinien: Wenn Sie Abhängigkeiten von externen Ressourcen identifizieren und entfernen, strafften Sie Ihre CSP-Richtlinie entsprechend.
-
Verwenden Sie spezifische Domänen anstelle von Wildcards: Geben Sie statt
https:genauer Domänen an (z. B.https://cdn.example.com), um die Sicherheit zu erhöhen.
Häufige Szenarien
Szenario: Hinzufügen von Google Analytics
script-src 'self' content.powerapps.com 'nonce'
https://www.googletagmanager.com
https://www.google-analytics.com;
style-src 'unsafe-inline' https:;
img-src 'self' https: data:;
connect-src 'self'
https://www.google-analytics.com
https://analytics.google.com;
Szenario: Hinzufügen einer YouTube-Einbettung
script-src 'self' content.powerapps.com 'nonce';
style-src 'unsafe-inline' https:;
frame-src 'self' https://www.youtube.com
https://www.youtube-nocookie.com;
Szenario: Verwenden von Google Fonts
script-src 'self' content.powerapps.com 'nonce';
style-src 'unsafe-inline'
https://fonts.googleapis.com;
font-src 'self' https://fonts.gstatic.com;