Skip to main content Skip to page footer
Was sind eigentlich Content Security Policies?

Was sind eigentlich Content Security Policies?

| Web Development | Geschätzte Lesezeit : min.

Möchtest du wissen, was Content Security Policies sind? Diese werden auch als CSP abgekürzt und sorgen für mehr Sicherheit im Web. Es handelt sich um Sicherheitsrichtlinien, welche bestimmte Code-Ressourcen, wie JavaScript, blockieren oder erlauben können.

Was sind eigentlich Content Security Policies?

Content Security Policies sind ein wichtiger Bestandteil der Web-Sicherheit. Diese Richtlinien helfen dabei, deine Website und ihre Nutzer vor Angriffen zu schützen. 

Aber was genau sind Content Security Policies? 

Kurz gesagt handelt es sich um eine Sammlung von Sicherheitsregeln, die im Header einer HTTP-Antwort deiner Website enthalten sind. Mit diesen Regeln kannst du festlegen, welche Ressourcen (wie JavaScript-Code oder HTML-Inhalte) von deiner Website geladen werden dürfen und von welchen Quellen sie stammen sollten. 

Die verschiedenen Arten von Direktiven wie default-src oder script-src ermöglichen dir eine granulare Kontrolle über die Inhalte und Code-Ressourcen auf deiner Webseite. Durch das Implementieren dieser Policies wird das Risiko von Cross-Site-Scripting-Angriffen (XSS) reduziert, da schädlicher Code blockiert wird. In den folgenden Abschnitten dieses Artikels werden wir uns genauer damit befassen, wie Content Security Policies funktionieren und wie man sie implementiert, um deine Webseite zu schützen!

Warum sind Content Security Policies wichtig für deine Website?

Content Security Policies sind von großer Bedeutung für jede Website. Sie helfen dabei, deine Webseite vor Angriffen zu schützen und sicherer zu machen. 

Wenn du eine CSP verwendest, kannst du bestimmte Code-Ressourcen und Inhalte definieren, die auf deiner Website zugelassen sind. Dadurch wird verhindert, dass unerwünschte Ressourcen wie schädlicher Code oder Skripte ausgeführt werden können. Das bedeutet auch, dass XSS-Angriffe (Cross-Site Scripting) vermieden werden können. 

Ein CSP-Header kann in HTML-Dokumente eingefügt werden und enthält verschiedene Direktiven wie 'default-src' oder 'script-src'. Diese definieren die Quellen der Ressourcen und Skripte, die auf deiner Webseite verwendet werden dürfen. 

Durch das Verwenden von Content Security Policies kannst Du also gezielt steuern, welche externen Ressourcen auf deiner Seite geladen werden dürfen - das erhöht nicht nur die Sicherheit deiner Webseite, sondern kann auch dazu beitragen, dass deine Webseite schneller lädt.

Wie funktionieren Content Security Policies?

Die Antwort ist relativ einfach: CSPs sind spezielle Header, die von deinem Webserver gesendet werden und dem Browser Anweisungen geben, welche Ressourcen auf der Seite geladen werden dürfen und welche nicht. 

Diese Anweisungen können für verschiedene Arten von Ressourcen wie Scripts, Stylesheets oder Bilder definiert werden. Jede Anweisung wird als Direktive bezeichnet und kann verschiedene Werte haben. 

Zum Beispiel gibt es die Directive "default-src", mit der du festlegen kannst, welche Quellen standardmäßig für alle anderen Directives verwendet werden sollen. 

Eine weitere wichtige Directive ist "script-src", mit der du definieren kannst, aus welchen Quellen JavaScript-Code auf deiner Website geladen werden darf. 

Wenn ein Script versucht, aus einer nicht autorisierten Quelle zu laden (z.B. eine externe Domain), verhindert die CSP dies und schützt so deine Website vor potenziell gefährlichem Code (wie XSS-Angriffen). 

Insgesamt bieten Content Security Policies also einen wichtigen Schutzmechanismus gegen Sicherheitsbedrohungen im Web durch unerwünschten Code oder unsichere Content-Quellen.

Die verschiedenen Arten von Content Security Policies

Content Security Policies (CSP) sind eine wichtige Möglichkeit, um deine Website vor XSS-Attacken und anderen Sicherheitsbedrohungen zu schützen. Es gibt verschiedene Arten von CSPs, die du verwenden kannst, um dein Web zu sichern. Eine Art ist die default-src-Direktive. Diese Art von Direktive legt fest, welche Ressourcen ohne explizite Angabe von Quellen in deinem HTML-, JavaScript- oder anderen Code-Dateien geladen werden dürfen. Eine weitere Art ist die script-src-Direktive. Diese Direktive steuert das Laden von Skripten auf deiner Webseite und ermöglicht es dir, nur bestimmte Skripte zuzulassen oder abzulehnen.

Eine Beispiel-Policy könnte folgendermaßen aussehen:

content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'

Dies bedeutet, dass alle Inhalte von der Website selbst geladen werden dürfen (default-src 'self') und dass nur Skripte mit der Quelle 'self' oder mit dem Attribut 'unsafe-inline' geladen werden dürfen (script-src 'self' 'unsafe-inline'). Durch Verwendung dieser CSP kannst du sicherstellen, dass nur vertrauenswürdiger Code auf deiner Website ausgeführt wird.

Weitere konkrete Beispiele für CSP-Direktiven:

  • img-src 'self' https://sichere-bilder-quelle.de

    Erlaubt das Laden von Bildern nur von der eigenen Seite und der angegebenen sicheren externen Quelle.

  • style-src 'self' 'unsafe-inline' https://sichere-styles-quelle.de

    Erlaubt das Laden von Stylesheets von der eigenen Seite, ermöglicht Inline-Styles (was ein Sicherheitsrisiko darstellen kann) und lädt Stylesheets von einer sicheren externen Quelle.

  • font-src 'self' https://sichere-schriften-quelle.de

    Erlaubt das Laden von Schriftarten nur von der eigenen Seite und einer sicheren externen Quelle.

  • connect-src 'self' https://api.meineapi.de

    Beschränkt AJAX-Requests und WebSockets auf die eigene Seite und eine spezifizierte API.

  • frame-ancestors 'none'

    Verhindert, dass deine Webseite in einem <iframe> eingebettet wird, was Schutz gegen Clickjacking bietet.

Es ist wichtig zu beachten, dass jede CSP-Direktive spezifisch für ein bestimmtes Element oder einen bestimmten Typ von Inhalt ist. Zum Beispiel gilt die default-src-Direktive für alle Ressourcen auf einer Seite, einschließlich Bilder und Stylesheets. Andere wichtige CSP-Direktiven sind frame-ancestors (zum Schutz gegen Clickjacking-Angriffe), object-src (für eingebettete Objekte wie Flash) und media-src (für Audio- oder Video-Inhalte).

Durch die Verwendung von Content Security Policies kannst du dein Web vor den meisten bekannten Sicherheitsbedrohungen schützen. Verwende sie als Teil deiner allgemeinen Sicherheitsstrategie, um deine Website zu schützen und sicherzustellen, dass nur vertrauenswürdige Inhalte geladen werden.

Schritt-für-Schritt-Anleitung zur Implementierung von Content Security Policies in .htaccess und TYPO3

Um die im vorheringen Absatz beschriebenen Content Security Policies (CSP) auf deiner Website zu implementieren, gibt es mehrere Methoden. Zwei gängige Ansätze sind die Verwendung der .htaccess-Datei und die Einstellung in TYPO3 über TypoScript mit config.additionalHeaders.

Implementierung über die .htaccess-Datei

Zugriff auf die .htaccess-Datei: Öffne die .htaccess-Datei im Root-Verzeichnis deiner Website. Wenn diese Datei nicht existiert, kannst du sie erstellen.

Hinzufügen der CSP-Regeln: Füge die CSP-Regeln hinzu, indem du den Header set Content-Security-Policy Befehl verwendest. Hier ist ein Beispiel, das auf dem vorherigen Absatz basiert.

Datei speichern und testen: Speichere die Änderungen und teste deine Website, um sicherzustellen, dass die CSPs korrekt funktionieren und keine notwendigen Ressourcen blockiert werden.

<IfModule mod_headers.c>
    Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; img-src 'self' https://sichere-bilder-quelle.de; style-src 'self' 'unsafe-inline' https://sichere-styles-quelle.de; font-src 'self' https://sichere-schriften-quelle.de; connect-src 'self' https://api.meineapi.de; frame-ancestors 'none';"
</IfModule>

Implementierung in TYPO3 über TypoScript

Zugriff auf TypoScript-Setup: Öffne das TypoScript-Setup deiner TYPO3-Website.

Setzen der CSP-Regeln: Verwende config.additionalHeaders, um deine CSP-Regeln hinzuzufügen. Hier ist ein Beispiel, wie du es in deinem TYPO3-Setup implementieren könntest.

Speichern und testen: Speichere die Änderungen und überprüfe deine Website, um sicherzustellen, dass die CSPs richtig angewendet werden.

config.additionalHeaders {
    10 {
        header = Content-Security-Policy:default-src 'self'; script-src 'self' 'unsafe-inline'; img-src 'self' https://sichere-bilder-quelle.de; style-src 'self' 'unsafe-inline' https://sichere-styles-quelle.de; font-src 'self' https://sichere-schriften-quelle.de; connect-src 'self' https://api.meineapi.de; frame-ancestors 'none';
        replace = 1
    }
}

In beiden Fällen ist es wichtig, die CSPs sorgfältig zu testen, um sicherzustellen, dass sie wie beabsichtigt funktionieren und keine kritischen Funktionen der Website blockieren. Es kann hilfreich sein, zunächst im Report-Only-Modus zu arbeiten, um potenzielle Probleme zu identifizieren, bevor die Richtlinien vollständig durchgesetzt werden.

Die Vorteile der Verwendung von Content Security Policies

Wenn du Content Security Policies auf deiner Website verwendest, hast du viele Vorteile. Eine CSP kann dir helfen, deine Webseite gegen XSS-Angriffe zu schützen und die Sicherheit deiner Benutzerdaten zu erhöhen. Außerdem kannst du mit einer CSP sicherstellen, dass alle Ressourcen auf deiner Website (wie Bilder oder Skripte) nur von den erlaubten Quellen geladen werden können. Durch das Hinzufügen von CSP-Direktiven in das Header-Feld deiner Webseite kannst du auch verhindern, dass Drittanbieter-Skripte ausgeführt werden und unerwünschte Manipulationen an der HTML-Struktur vorgenommen werden.

Fallbeispiele zur Verwendung von CSP

Verhinderung von XSS-Angriffen: Angenommen, deine Website hat ein Kommentarfeld, das nicht richtig gegen Skripteinbettungen geschützt ist. Ein Angreifer könnte versuchen, ein schädliches Skript in einem Kommentar zu hinterlassen, das dann von anderen Besuchern der Seite ausgeführt wird. Wenn du jedoch eine CSP implementiert hast, die nur Skripte von vertrauenswürdigen Quellen zulässt (z.B. script-src 'self' vertrauenswuerdige-quelle.de), wird das bösartige Skript blockiert und kann keinen Schaden anrichten.

Kontrolle über externe Ressourcen: Stell dir vor, du integrierst eine externe Bibliothek in deine Website. Später wird diese Bibliothek kompromittiert und dient als Quelle für schädlichen Code. Wenn du eine CSP verwendest, die das Laden von Skripten nur von bestimmten Domains erlaubt (z.B. script-src 'self' meine-vertrauenswuerdige-bibliothek.de), bist du gegen solche Sicherheitslücken geschützt, da deine Seite keine Ressourcen von der kompromittierten Quelle laden wird.

Schutz vor Datenlecks: Nehmen wir an, deine Webseite enthält sensible Informationen, und ein eingebettetes Skript eines Drittanbieters versucht, diese Informationen an einen externen Server zu senden. Eine CSP, die das Senden von Daten nur an bestimmte, von dir genehmigte Quellen zulässt (z.B. connect-src 'self' meine-datenverarbeitung.de), kann verhindern, dass solche Daten unbefugt weitergegeben werden.

Es gibt verschiedene Arten von CSP-Direktiven wie "default-src" und "script-src", die jeweils unterschiedliche Bereiche der Webressourcen abdecken. Mit diesen Direktiven kannst du genau steuern, welche Ressourcen auf deiner Seite zugelassen sind und welche blockiert werden sollen. Die Verwendung von CSP ist eine wirksame Methode zur Verbesserung der Sicherheit im Web, indem sie den Code und den Inhalt geschützt hält und somit unerwünschte Angriffe verhindert.

Fazit: Sichere deine Website mit Content Security Policies!

Wenn du eine Website besitzt, ist es wichtig, dass diese sicher ist und gegen mögliche Angriffe geschützt wird. Hier kommen Content Security Policies ins Spiel. Diese helfen dir dabei, deine Website vor Cross-Site-Scripting (XSS) und anderen Angriffen zu schützen, indem sie bestimmte Regeln festlegen, welche Ressourcen von deiner Website geladen werden dürfen und welche nicht. 

Wenn du die verschiedenen Arten von Directives wie default-src oder script-src kennst und weißt, wie du sie in deinem HTML-Code implementierst, kannst du eine effektive Policy erstellen. Mit einer gut konfigurierten Content Security Policy kannst du das Risiko von Sicherheitslücken auf deiner Webseite deutlich minimieren. Verwende also die Vorteile von Content Security Policies zu deinen Gunsten und sichere deine Webressourcen mit einem Header für deine CSP!

Zurück

Wer schreibt hier?

Hi, ich bin Wolfgang.

Seit 2006 tauche ich tief in die faszinierende Welt von TYPO3 ein – es ist nicht nur mein Beruf, sondern auch meine Leidenschaft. Mein Weg führte mich durch unzählige Projekte, und ich habe Hunderte von professionellen Videoanleitungen erstellt, die sich auf TYPO3 und seine Erweiterungen konzentrieren. Ich liebe es, komplexe Themen zu entwirren und in leicht verständliche Konzepte zu verwandeln, was sich auch in meinen Schulungen und Seminaren widerspiegelt.

Als aktives Mitglied im TYPO3 Education Committee setze ich mich dafür ein, dass die Prüfungsfragen für den TYPO3 CMS Certified Integrator stets aktuell und herausfordernd bleiben. Seit Januar 2024 bin ich stolz darauf, offizieller TYPO3 Consultant Partner zu sein!

Meine Leidenschaft endet aber nicht am Bildschirm. Wenn ich nicht gerade in die Tiefen von TYPO3 eintauche, findest du mich oft auf meinem Rad, während ich die malerischen Wege am Bodensee erkunde. Diese Ausflüge ins Freie sind mein perfekter Ausgleich – sie halten meinen Geist frisch und liefern mir immer wieder neue Ideen.

Der TYPO3 Newsletter

TYPO3-Insights direkt in dein Postfach! 
Hol dir monatliche Updates, praktische Tipps und spannende Fallstudien. 
Übersichtlich, zeitsparend, ohne Spam. 
Bist du dabei? Jetzt für den Newsletter anmelden!

Trage dich hier ein, um den Newsletter zu erhalten.