Anmelden
Menü Menue
IT News
  • Newsticker
  • heise Developer
  • heise Netze
  • heise Open Source
  • heise Security
Online-Magazine
  • heise+
  • Telepolis
  • heise Autos
  • TechStage
  • tipps+tricks
Magazine
  • c't
  • iX
  • Technology Review
  • c't Fotografie
  • Mac & i
  • Make
  • im Browser lesen und Artikel-Archiv
Services
  • Stellenmarkt heise Jobs
  • Weiterbildung
  • heise Download
  • Preisvergleich
  • Whitepaper/Webcasts
  • DSL-Vergleich
  • Netzwerk-Tools
  • Spielen bei Heise
  • Loseblattwerke
  • iMonitor
  • IT-Markt
Heise Medien
  • heise shop
  • Abo
  • Veranstaltungen
  • Arbeiten bei Heise
  • Mediadaten
  • Presse
Anzeige Heise SecurityHub Online-Marketing
Newsletter heise-Bot heise-Bot Push Nachrichten Push Push-Nachrichten
heise Security
  • News
    • Archiv
    • 7-Tage-News
  • Hintergrund
  • heise Security Pro
    • FAQs zu heise Security Pro
  • Events
  • Kontakt
  1. Security
  2. Hintergrund
  3. Ausnahmsweise

XSS-Bremse Content Security Policy

Ausnahmsweise

Inhaltsverzeichnis
  1. XSS-Bremse Content Security Policy
  2. Aller Anfang ist leicht
  3. Ausnahmsweise
  4. Umbaumaßnahmen
  5. Rauchmelder
  6. Pro und Contra
  7. Auf einer Seite lesen

Ausnahmsweise

Das Beispiel Content-Security-Policy "default-src 'self'" beschränkt das Nachladen sämtlicher Inhaltstypen auf die Domain der Seite (default-src 'self'). Das ist eine gute Ausgangssituation, um eventuell nötige Ausnahmen zu definieren. Soll eine Seite etwa auch von heise.de Skripte nachladen dürfen, fügt man eine entsprechende Skriptquelle (script-src) hinzu:

default-src 'self'; script-src http://heise.de

Der Aufbau ist leicht durchschaubar: Dem Header-Feld "Content-Security-Policy" folgt die sogenannte Direktive des Inhaltstyps und dahinter kommen die Parameter. Jede Direktive kann mehrere Parameter enthalten, die von Leerzeichen getrennt werden. Zumeist handelt es sich bei den Parametern schlicht um Listen der erlaubten Quellen. Das können vollständige URLs, Domains oder auch nur URL-Schemata wie http: oder https: sein. Letzteres erlaubt etwa das Erzwingen von HTTPS.

Direktive Zweck
default-src Standardquellen für Inhalte, sofern keine speziellere Direktive definiert wurde
connect-src Ziele der JavaScript-Objekte XMLHttpRequest, WebSocket und EventSource
font-src erlaubte Quellen für Schriftarten
frame-src erlaubte Quellen für iFrames
img-src erlaubte Quellen für Bilder
media-src erlaubte Quellen für Video und Audio-Dateien
object-src erlaubte Quellen für Flash-, Java-Applets und andere Plug-ins
script-src erlaubte Quellen für JavaScript
style-src erlaubte Quellen für Stylesheets
report-uri Verstöße gegen die Policy werden hier berichtet
sandbox Sandbox-Regeln analog zum sandbox-Attribut in HTML5

Es gibt die folgenden Direktiven:

Wildcards nach dem Muster http://*.heise.de sind laut Spezifikation erlaubt, man sollte sie allerdings ausschließlich im Header "Content-Security-Policy" benutzen – bei den X-Varianten ignoriert der Browser nämlich alles hinter dem Sternchen. Das Beispiel würde dazu führen, dass alle Domains erlaubt sind. Beim Definieren der Ausnahmeregeln ist das CSP-Bookmarklet von Brandon Sterne hilfreich. Es analysiert, welche Inhaltstypen der Browser beim Seitenaufruf von externen Quellen nachlädt und generiert daraus eine passende Whitelist.

Das CSP-Bookmarklet erstellt das Grundgerüst für die eigene Policy.

Darüber hinaus gibt es Schlüsselwörter, die eigenwilligerweise in einfachen Anführungszeichen stehen müssen: 'self' bewirkt, dass der Inhaltstyp nur von der gleichen Quelle nachgeladen werden darf. Der Wert 'none' verbietet den Einsatz eines Inhaltstyps komplett.

Sobald eine Policy definiert wurde, führt der Browser keinen JavaScript-Code mehr aus, der direkt in den HTML-Code der Seite eingebettet ist – sogenannte Inline-Skripte. Das erfordert oft zwar Änderungen an der Seite (siehe "Umbaumaßnahmen"), ist aber auch durchaus sinnvoll: Es vereitelt die häufigste Form von XSS, die zu Beginn des Artikels geschildert wurde. Auch Inline-Stylesheets sind normalerweise durch CSP verboten, da Cyber-Ganoven darüber prinzipiell Daten abgreifen können. Mit 'unsafe-inline' schaltet man InlineSkripte (über die Direktive script-src) oder Inline-CSS (über style-src) wieder an. Wie sich aus dem führenden „unsafe-“ schon erschließt, sollte man von diesen Optionen nach Möglichkeit die Finger lassen.

Eine weitere Default-Einschränkung bei CSP ist das strikte Verbot der eval()-Funktion, die Zeichenketten in ausführbaren JavaScript-Code umwandelt – und damit das Einschleusen von Angriffscode erleichtert. Man schaltet eval() über das Schlüsselwort 'unsafe-eval' bei script-src wieder frei, wenn es sein muss. In der Firefox-Implementierung "X-Content-Security-Policy" werden die unsafe-Schalter nicht als Paramater der Direktiven angegeben, sondern nach folgendem Muster als "options" an die Policy gehängt:

X-Content-Security-Policy: default-src 'self'; options inline-script eval-script.

Inline-CSS ist bei der derzeitigen Firefox-Implementierung erlaubt.

Es sorgt für zusätzliche Sicherheit, den Einsatz nicht verwendeter Inhaltstypen durch den Wert 'none' zu verbieten. Wenn auf der Webseite etwa regulär keine Plug-ins zum Einsatz kommen, sorgt ein object-src 'none' dafür, dass der Browser unter keinen Umständen welche ausführt. Sollte es einem Angreifer beispielsweise gelingen, einen Java-Exploit in die Seite einzuschleusen, wird ein CSP-Browser diesen nicht starten. In Zukunft soll es die Möglichkeit geben, gezielt Plug-ins freizugeben.

Vorherige 1 2 3 4 5 6 Nächste

Mehr zum Thema

  • XSS

Forum bei heise online: Serversicherheit

Teile diesen Beitrag

https://heise.de/-1888522 Drucken
Dienste
  • Security Consulter
  • Netzwerkcheck
  • Anti-Virus
  • Emailcheck
  • Krypto-Kampagne
Alerts! alle Alert-Meldungen

Cisco (div. Produkte)

Tor Browser

Mozilla Thunderbird

VMware ESXi & vCenter Server

Update
Der digitale Treffpunkt für Security-Experten

secIT by Heise

Auf der secIT Digital präsentieren wir Ihnen die neuesten Trends, Lösungen und Informationen zum Thema IT-Security. Freuen Sie sich auf ein neues, innovatives Format, das Ihnen alle Möglichkeiten eines Präsenzevents ermöglicht. Zudem haben wir die secIT Digital auf 3 Tage verlängert – 23. bis 25. Februar 2021, damit wir ausreichend Raum für alle aktuellen Themen haben.

Anzeige
Anzeige
  • BWI: Die wichtigsten (IT-)Trends 2021
  • Sicher im Homeoffice: Cloud-Daten verschlüsseln!
  • Datenschutz verbessern, Strafen vermeiden
  • Sie sind IT-Experte? Finden Sie Ihren Traumjob auf heise jobs!
  • Zukunftssichere IT für KMU
  • SMART Freelancing für Ihren Projekterfolg
  • Singapur - die smarteste Stadt der Welt
  • Wie der IT-Support der Zukunft aussieht
  • Mehr Sicherheit für digitale Prozesse
  • Themenspecial: Moderne IT-Infrastruktur
Artikel

iOS: Certificate Pinning per Konfiguration

App-Entwickler können die für TLS-Verbindungen erlaubten Schlüssel seit iOS 14 per Konfiguration einschränken.

8 Kommentare

Auf Tätersuche: Herausforderungen bei der Analyse von Cyber-Angriffen

Das Bedürfnis bei Cyber-Angriffen Täter zu benennen wächst. Doch die verantwortlichen Gruppen spezialisieren sich immer mehr und kooperieren bei Bedarf.

16 Kommentare mit Video

Jetzt patchen! Sicherheitsupdate für SonicWall SMA 100 ist da

Derzeit haben es Angreifer auf das Fernzugriffsystem SMA 100 von SonicWall abgesehen. Nun gibt es Patches.

1 Kommentare

Neueste Forenbeiträge

  1. Re: Unter DVD geht Scan mit Avast nicht
    PC: Ryzen 3 2200G, MSI B350 PC Mate Mainboard, 16 GB RAM, Win 10 64 Bit, 1 Crucial MX500 250 GB SSD, 2 Micron Ion 7,68 TB SSDs Verwende Kernel…

    Forum:  Desinfect

    shaadar hat keinen Avatar
    von shaadar; vor 2 Stunden
  2. Re: Init-Skript zum Einstellen der Bildschirmauflösung
    Langsam nährt sich.. Skript in seiner beinahe finalen Version: 1. verwendet "sudo -ni -g desinfect -u desinfect" vor xrandr-Kommando - es…

    Forum:  Desinfect

    Rram hat keinen Avatar
    von Rram; vor 9 Stunden
  3. XFCE und GNOME -Prozesse laufen
    XFCE scheint die Desktop-Umgebung bei Desinfect 20/21 zu sein? Auf Liste der laufenden Prozesse allerdings auch 3 Gnome-Einträge:…

    Forum:  Desinfect

    Rram hat keinen Avatar
    von Rram; vor 9 Stunden
News und Artikel
  • News
  • 7-Tage-News
  • News-Archiv
  • Hintergrund-Artikel
  • Alert-Meldungen
Service
  • Newsletter
  • Tools
  • Foren
  • RSS
  • mobil
Dienste
  • Security Consulter
  • Netzwerkcheck
  • Anti-Virus
  • Emailcheck
  • Krypto-Kampagne
  • Datenschutz
  • Impressum
  • Kontakt
  • Mediadaten
  • 1037017
  • Content Management by InterRed
  • Copyright © 2021 Heise Medien