Zum Hauptinhalt springen

Behebung von Content Security Policy (CSP)-Fehlern

Verwenden Sie diesen Artikel, um Content Security Policy (CSP)-Fehler zu identifizieren, zu beheben und zu verwalten, die Intercom-Funktionen auf Ihrer Website blockieren. CSP ist eine Browsersicherheitsfunktion, die steuert, welche externen Ressourcen...

Verfasst von Dawn

Was sind CSP-Fehler?

CSP ist eine Browsersicherheitsfunktion, die steuert, welche externen Ressourcen geladen werden dürfen – wenn sie zu restriktiv konfiguriert ist, kann sie verhindern, dass der Intercom Messenger, Help Center-Artikel, Bilder, Product Tours und Medien korrekt geladen werden.

Dies kann wichtige Funktionen stören und Probleme wie folgende verursachen:

  • Blockierte Bild-Uploads: Bilder können in Product Tours oder im Messenger nicht geladen werden.

  • Unresponsive Product Tours: Änderungen an einer Product Tour können nicht gespeichert werden.

  • Defekte Darstellungen: Intercom-Komponenten wie Logos können als defekte Bilder erscheinen.

  • Help Center-Probleme: Artikel können leer oder teilweise gerendert erscheinen oder unendliche Ladeanimationen auftreten.

Hinweis: Dieser Artikel ist relevant, wenn Sie den Intercom Messenger oder ein Intercom JS-Produkt auf Ihrer Website installiert haben (einschließlich Product Tours, Surveys, Checklists und News). Wenn Sie das eigenständige gehostete Help Center von Intercom verwenden (z. B. help.yourco.com), verwaltet Intercom seine eigene CSP und die Richtlinie Ihrer Website gilt dort nicht. Die Aktualisierung Ihrer CSP erfordert Zugriff auf Ihre Serverkonfiguration oder HTTP-Antwortheader – wenn Sie die Infrastruktur Ihrer Website nicht direkt verwalten, teilen Sie diesen Artikel mit Ihrem Entwicklungsteam oder Ihrer IT-Abteilung.


Wie man CSP-Fehler identifiziert

Um zu bestätigen, dass CSP Probleme mit Intercom auf Ihrer Website verursacht, müssen Sie die Entwicklerkonsole Ihres Browsers überprüfen.

  1. Öffnen Sie die Entwicklertools in Ihrem Browser (normalerweise durch Drücken von F12 oder Rechtsklick und Auswahl von Inspect).

  2. Navigieren Sie zum Tab Console.

  3. Reproduzieren Sie das Problem auf Ihrer Website, z. B. indem Sie versuchen, ein Bild hochzuladen oder eine Product Tour zu speichern.

  4. Suchen Sie in der Konsole nach roten Fehlermeldungen, die auf eine CSP-Verletzung hinweisen. Diese Meldungen erwähnen oft blockierte Anfragen an Intercom domains (z. B. uploads.intercomcdn.com, *.intercom.io) und die spezifische CSP-Direktive, die die Blockierung verursacht hat, wie connect-src oder img-src. Beispiel-Fehler: Refused to load the script 'https://widget.intercom.io' because it violates the following Content Security Policy directive: "script-src 'self'".


Wie man CSP-Fehler behebt

Um diese Fehler zu beheben, müssen Sie die CSP-Konfiguration Ihrer Website aktualisieren, um Ressourcen von den erforderlichen Intercom domains zuzulassen.

1. Aktualisieren Sie Ihre CSP-Direktiven

  • Fehler-Direktive lokalisieren: Identifizieren Sie in der Entwicklerkonsole, welche Direktive die Einschränkung verursacht hat (z. B. img-src).

  • Intercom domains auf die Allowlist setzen: Fügen Sie die erforderlichen Intercom-URLs zu den relevanten Direktiven in der CSP-Konfiguration Ihrer Website hinzu.

Wichtig: Sie müssen in der Regel die Intercom domains zu folgenden Direktiven hinzufügen:

  • connect-src: Für Kernfunktionen.

  • img-src: Für Bilder und Anhänge.

  • media-src: Für Medienressourcen.

Die hinzuzufügenden domains sind *.intercomcdn.com, *.intercom.io und *.intercom-chat.com (erforderlich für die Live-Websocket-Verbindung des Messengers – nicht durch das *.intercom.io-Wildcard abgedeckt). Für die aktuellste Domainliste siehe Using Intercom with Content Security Policy.

Fügen Sie außerdem intercom-sheets.com in die frame-src-Direktive ein, um das ordnungsgemäße Laden von Artikel-Viewer-Frames sicherzustellen.

Hinweis: Wenn Artikel in Ihrem eigenständigen Help Center korrekt geladen werden, aber leer erscheinen oder nicht gerendert werden, wenn sie im Messenger geöffnet werden, ist wahrscheinlich eine CSP-Fehlanpassung die Ursache. Der Messenger rendert Artikel in einem iframe – wenn Ihre Richtlinie frame-src intercom-sheets.com oder connect-src *.intercom.io blockiert, schlägt der Artikel-Viewer im Messenger fehl, auch wenn der Rest des Messengers geladen wird. Fügen Sie intercom-sheets.com zu Ihrer frame-src-Direktive hinzu, um dies zu beheben.

2. Überarbeiten Sie Sicherheitsheader

Zu restriktive Header wie X-Frame-Options oder CSP-frame-ancestors-Einstellungen können ebenfalls die Funktionalität von Intercom beeinträchtigen. Überprüfen Sie diese Einstellungen und passen Sie sie bei Bedarf an.

3. Überprüfen Sie Netzwerkeinstellungen

Stellen Sie sicher, dass Ihre Netzwerk- oder Firewall-Einstellungen ausgehende Verbindungen zu den Intercom-Servern zulassen. Möglicherweise müssen Sie Ihr IT-Team bitten, die erforderlichen domains auf die Allowlist zu setzen.

4. Testen Sie Ihre Änderungen

Nach der Aktualisierung Ihrer CSP-Konfiguration:

  • Laden Sie die betroffenen Seiten auf Ihrer Website neu und prüfen Sie, ob die Intercom-Funktionen jetzt korrekt funktionieren.

  • Überwachen Sie die Entwicklerkonsole, um sicherzustellen, dass keine neuen CSP-Verletzungen auftreten.

  • Führen Sie einen Hard-Refresh in Ihrem Browser durch, um zwischengespeicherte Assets nach CSP-Änderungen zu löschen.

    Wenn Intercom-Funktionen nach einem Hard-Refresh immer noch nicht funktionieren, öffnen Sie den Console-Tab erneut und prüfen Sie auf verbleibende CSP-Verletzungsfehler. Jede neue Fehlermeldung nennt die nächste Direktive oder Domain, die hinzugefügt werden muss – wiederholen Sie den Aktualisierungs- und Testzyklus, bis keine Verletzungen mehr auftreten.


Welche Intercom-Funktionen sind von CSP-Fehlern betroffen?

Verschiedene Intercom-Funktionen werden durch unterschiedliche CSP-Direktiven blockiert. Die folgende Tabelle ordnet jede Intercom-Funktion ihren typischen Symptomen, der blockierenden CSP-Direktive und den zu erlaubenden domains zu.

Intercom-Funktion

Symptome

Blockierte Direktive

Domain(s) auf die Allowlist setzen

Messenger (Chat-Widget)

Widget lädt nicht oder ist unsichtbar

script-src, connect-src

widget.intercom.io, js.intercomcdn.com, *.intercom-chat.com, api-iam.intercom.io (US), api-iam.eu.intercom.io (EU), api-iam.au.intercom.io (AU)

Help Center

Artikel erscheinen leer oder laden nicht, auch wenn sie im Messenger Help-Bereich angezeigt werden

frame-src, connect-src

intercom-sheets.com, *.intercom.io

Bild-Uploads & Anhänge

Bilder können nicht hochgeladen werden oder erscheinen defekt

img-src, connect-src

uploads.intercomcdn.com, *.intercomcdn.com

Product Tours

Tours werden nicht gerendert oder Änderungen können nicht gespeichert werden

script-src, connect-src, img-src

*.intercom.io, *.intercomcdn.com

Medien (Video/Audio)

Mediendateien können nicht abgespielt werden

media-src, connect-src

*.intercomcdn.com

Tipp: Wenn Sie mehrere Konsolenfehler gleichzeitig sehen, beheben Sie diese zuerst bei der restriktivsten Direktive (z. B. blockiert script-src mehr als img-src). Eine Direktivenkorrektur kann manchmal mehrere Symptome beheben.


Wie Sie Ihre CSP für bestimmte Intercom-Funktionen aktualisieren

Verwenden Sie den Report-Only-Modus, um vor der Durchsetzung zu prüfen, und wenden Sie Änderungen dann schrittweise pro Funktion an.

Verwenden Sie zuerst den Report-Only-Modus

Bevor Sie Ihre durchgesetzte Content Security Policy (CSP) bearbeiten, um Intercom-Probleme zu beheben, fügen Sie einen Content-Security-Policy-Report-Only-Header neben Ihrer bestehenden Richtlinie hinzu. Dieser protokolliert Verstöße, ohne etwas zu blockieren, sodass Sie sicher prüfen können, was geändert werden muss.

Fügen Sie den folgenden Content-Security-Policy-Report-Only-Header zu den HTTP-Antwortheadern Ihres Servers hinzu (neben – nicht anstelle – Ihres durchgesetzten Content-Security-Policy-Headers):

Content-Security-Policy-Report-Only:
  script-src 'self' https://widget.intercom.io https://js.intercomcdn.com;
  connect-src 'self' https://*.intercom.io https://*.intercomcdn.com
             https://*.intercom-chat.com wss://*.intercom-chat.com;
  img-src 'self' https://*.intercomcdn.com;
  media-src 'self' https://*.intercomcdn.com;
  frame-src 'self' https://intercom-sheets.com;

Änderungen schrittweise anwenden

  1. Aktivieren Sie den Report-Only-Modus und reproduzieren Sie das Problem.

  2. Notieren Sie jede blockierte Domain in der Konsolenausgabe.

  3. Fügen Sie die erforderlichen Domains nacheinander zur relevanten Direktive in Ihrer durchgesetzten Richtlinie hinzu.

  4. Testen Sie erneut im Report-Only-Modus, um sicherzustellen, dass keine neuen Verstöße auftreten.

  5. Übernehmen Sie die Änderung in Ihren durchgesetzten Content-Security-Policy-Header.

    Führen Sie nach der Übernahme einen Hard-Refresh durch und bestätigen Sie, dass die Intercom-Funktion wie erwartet funktioniert. Wenn ein neuer Verstoß in der Konsole erscheint, wiederholen Sie Schritt 1 für die neue Direktive.


Wie Sie Ihre CSP aktuell halten

Die CSP-Konfiguration ist keine einmalige Lösung. Intercom aktualisiert regelmäßig seine Infrastruktur und Domain-Anforderungen. Befolgen Sie die folgenden Schritte, um Ihre Richtlinie aktuell zu halten.

Überwachen Sie neue Verstöße

  • Richten Sie einen CSP-Reporting-Endpunkt mit der report-to-Direktive ein (eine CSP-Direktive, die Browsern mitteilt, wohin Verstöße gemeldet werden sollen), damit Verstöße automatisch an einen Protokollierungsdienst gesendet werden – Sie müssen die Konsole nicht manuell überprüfen. Hinweis: report-uri ist zugunsten von report-to veraltet. Bei Verwendung von report-to müssen Sie auch einen begleitenden Reporting-Endpoints-HTTP-Antwortheader hinzufügen, um die Endpunktgruppe zu definieren.

  • Überprüfen Sie Verstöße nach jedem Intercom-Update oder nach Änderungen an der Infrastruktur Ihrer Website.

Bleiben Sie mit der Intercom-Domainliste auf dem Laufenden

  • Legen Sie die Seite Using Intercom with Content Security Policy als Lesezeichen an und prüfen Sie sie bei größeren Intercom-Updates.

  • Abonnieren Sie die Statusseite von Intercom, um über Infrastrukturänderungen informiert zu werden, die erforderliche Domains betreffen können.

Vermeiden Sie häufige Verwaltungsfehler

  • Verwenden Sie nicht unsafe-inline oder unsafe-eval als Abkürzung. Das Hinzufügen dieser Werte zu script-src deaktiviert einen wichtigen Schutz gegen XSS (Cross-Site-Scripting) und macht Ihre Website anfällig für Skriptinjektionen – selbst als vorübergehende Maßnahme. Verwenden Sie stattdessen Nonces (kryptografische Token, die jedem Skript-Tag hinzugefügt werden) oder Hashes – Intercom unterstützt strikte CSPv3 (die dritte Version des CSP-Standards) mit nonce-basierten Richtlinien.

  • Führen Sie Ihre CSP in der Versionskontrolle. Verfolgen Sie jede Änderung zusammen mit Ihrer Bereitstellungshistorie, damit Sie eine Direktivenänderung zurücksetzen können, falls sie die Funktionalität beeinträchtigt.

  • Testen Sie zuerst in einer Staging-Umgebung. Validieren Sie CSP-Änderungen immer gegen Intercom-Funktionen in einer Staging- oder Vorschauumgebung, bevor Sie sie in der Produktion bereitstellen.

Hinweis: Wenn Sie Intercom über Google Tag Manager (GTM) integrieren, stellen Sie sicher, dass die script-src- und connect-src-Einträge Ihres GTM-Containers ebenfalls in Ihrer Richtlinie enthalten sind – GTM fügt Skripte dynamisch ein, was zusätzliche CSP-Verstöße auslösen kann, die sich von den Intercom domains unterscheiden. Wenn Probleme nach der Aktualisierung dieser Direktiven bestehen bleiben, implementieren Sie den Intercom Messenger in einem dedizierten GTM-Tag anstelle von Inline-Skripten.

Hinweis: CSP-Header-Änderungen können von Ihrem CDN oder Browser zwischengespeichert werden. Wenn Sie nach Änderungen kein aktualisiertes Richtlinienverhalten sehen, leeren Sie den CDN-Cache und führen Sie einen Hard-Refresh durch, bevor Sie erneut testen.

Hinweise:

  • Die Aktualisierung Ihrer Content Security Policy erfordert Zugriff auf Ihre Serverkonfiguration oder HTTP-Header. Wenn Sie die Infrastruktur Ihrer Website nicht direkt verwalten, teilen Sie diesen Artikel mit Ihrem Entwicklungsteam oder Ihrer IT-Abteilung.

  • Wenn Sie den Intercom Messenger über Google Tag Manager (GTM) integrieren, stellen Sie sicher, dass die Hosting-Region von GTM mit der Region Ihres Intercom-Arbeitsbereichs übereinstimmt. Setzen Sie api_base auf den Endpunkt für Ihre Region: api-iam.intercom.io (US), api-iam.eu.intercom.io (EU / EMEA – Europa, Naher Osten und Afrika) oder api-iam.au.intercom.io (AU).

Hat dies deine Frage beantwortet?