Abo
  • Services:
Anzeige
Content Security Policies sollen vor Cross-Site-Scripting schützen.
Content Security Policies sollen vor Cross-Site-Scripting schützen. (Bild: virtualforge.de/Screenshot: Golem.de)

Bilder, Fonts und andere

Neben externen Skripten ermöglicht es Content Security Policy auch zu definieren, aus welchen Quellen Elemente wie Bilder (img-src), Schriftarten (font-src), Frames (frame-src) und zahlreiche andere Arten von Inhalten eingefügt werden können. Eine vollständige Übersicht findet sich in den Spezifikationen der Content Security Policy. Verschiedene Direktiven können durch Strichpunkte (;) abgetrennt werden. Ein Beispiel wäre etwa script-src 'self';img-src 'self' images.example.com. Hier wäre Script-Code nur von der eigenen Domain zulässig, Bilder können zusätzlich von der Domain images.example.com nachgeladen werden.

Anzeige

Als besondere Direktive existiert noch default-src, diese bezieht sich auf sämtliche Inhalte, die extern eingebunden werden können. Eine später aufgelistete Direktive überschreibt immer alle vorherigen. So könnte man etwa mit default-src 'self';script-src 'self' script.example.com sämtliche Inhalte nur vom eigenen Server zulassen, lediglich Script-Code darf vom externen Server script.example.com eingebunden werden.

Die Standardeinstellung für alle Medieninhalte ist aber, dass diese grundsätzlich zugelassen werden.

Sonderfall Inline-Code

Einen Spezialfall stellt sogenannter Inline-Javascript-Code dar. Üblicherweise kann an jeder Stelle in einem HTML-Dokument beliebiger Javascript-Code stehen, dazu gibt es die Möglichkeit, HTML-Elementen bei bestimmten Ereignissen wie etwa einem Klick Javascript-Code zuzuweisen. Das folgende, triviale Beispiel etwa würde ein Pop-up öffnen:

<script>alert(1)</script>

Derartiger Inline-Code wird in Content Security Policy mit einem speziellen Keyword 'unsafe-inline' gesteuert. Da Inline-Code üblicherweise für die meisten Cross-Site-Scripting-Angriffe verantwortlich ist, sollte dieser unbedingt vermieden werden. Obiges Beispiel müsste man hierzu in eine externe Datei auslagern:

<script src="test.js"></script>

Die Datei test.js enthält dann den gewünschten Code - im genannten Beispiel das simple alert(1).

Für CSS-Formatierungen gilt Ähnliches. Ohne das Keyword 'unsafe-inline' bei style-src sind direkte Angaben von Formatierungen in HTML-Code nicht mehr möglich, sie müssen in eine separate CSS-Datei ausgelagert werden.

Ausführen von Code in Code

Javascript bietet die Möglichkeit, mit dem Kommando eval() innerhalb von Javascript-Code einen String wiederum als Code auszuführen. Das kann in manchen Fällen nützlich sein, jedoch birgt es auch ein Sicherheitsrisiko. Wenn ein Entwickler einem eval-Befehl ein Stück Code übergibt, das eine Nutzereingabe enthält, ergibt sich hier wiederum eine Cross-Site-Scripting-Lücke.

Aus diesem Grund lässt sich mit Content Security Policy die Ausführung von Code mit eval() und anderen Befehlen, die Vergleichbares ermöglichen, deaktivieren. Gesteuert wird dies durch das Keyword 'unsafe-eval'.

Berichte an den Anwendungsentwickler

Wenn Content Security Policy die Ausführung von Code oder das Einfügen eines Elements verhindert, ist dies ein Zeichen dafür, dass eine Lücke oder ein Bug in einer Anwendung existieren. Daher gibt es für Webentwickler die Möglichkeit, sich informieren zu lassen, wenn eine entsprechende Codesperre greift. Im Header kann man eine URL angeben, an die vom Browser automatisch Berichte als POST-Daten gesendet werden.

Gekennzeichnet wird diese Berichts-URL durch das Stichwort report-uri. Ein Beispielheader sähe etwa so aus: default-src 'self'; script-src 'self' 'script.example.com'; report-uri /reportxss.php. Unter der angegebenen URL sollte dann ein serverseitiges Script laufen, welches die empfangenen Daten an den Webentwickler weiterleitet oder in ein Logfile schreibt.

Microsoft und Opera warten ab

Mit Content Security Policy existiert nun ein ausgefeiltes Werkzeug, um Cross-Site-Scripting-Angriffe zu unterbinden. Bislang wird es jedoch nur von Chrome und Firefox standardmäßig unterstützt, in anderen Browsern ist es entweder unvollständig oder nur über experimentelle Headernamen nutzbar. Der Internet Explorer unterstützt bisher nur ein spezielles Subfeature von Content Security Policy. Opera unterstützt das Konzept bisher überhaupt nicht. Apples Safari hat bislang wie oben erwähnt noch einen eigenen, experimentellen Header-Namen.

Weitere Informationen zum Einsatz von Content Security Policy lassen sich im englischsprachigen Tutorial An Introduction to Content Security Policy des Google-Entwicklers Mike West finden.

 Content Security Policy: Schutz vor Cross-Site-Scripting

eye home zur Startseite
slashwalker 19. Nov 2014

Hatte CSP auch schon ausprobiert und mir ging es ähnlich wie dir. Dazu kommt noch das man...

Bibabuzzelmann 14. Jun 2013

Hm...ich mein es hat mal Alarm geschlagen, als ich auf ner verseuchten Seite unterwegs...

Anonymer Nutzer 14. Jun 2013

Danke, dass hat mich zu einer Lösung gebracht, es hat gerade mal eine Zeile gefehlt...

Missingno. 14. Jun 2013

Die verwenden doch jetzt Chrome.

Max-M 13. Jun 2013

Tatsache, die Tags stehen so im ausgegeben Quelltext ... *hust*



Anzeige

Stellenmarkt
  1. NRW.BANK, Düsseldorf
  2. ORBIT Gesellschaft für Applikations- und Informationssysteme mbH, Bonn, Darmstadt
  3. Deutsche Post DHL Group, Bonn
  4. Daimler AG, Stuttgart


Anzeige
Top-Angebote
  1. und 15€ Cashback erhalten
  2. 17,99€ statt 29,99€
  3. (u. a. Assassins Creed IV Black Flag 9,99€, F1 2016 für 29,99€, XCOM 4,99€, XCOM 2 23,99€)

Folgen Sie uns
       

Anzeige
Whitepaper
  1. Kritische Bereiche der IT-Sicherheit in Unternehmen
  2. Mehr dazu im aktuellen Whitepaper von IBM
  3. Sicherheitskonzeption für das App-getriebene Geschäft


  1. Hololens

    Microsoft holoportiert Leute aus dem Auto ins Büro

  2. Star Wars

    Todesstern kostet 6,25 Quadrilliarden britische Pfund am Tag

  3. NSA-Ausschuss

    Wikileaks könnte Bundestagsquelle enttarnt haben

  4. Transparenzverordnung

    Angaben-Wirrwarr statt einer ehrlichen Datenratenangabe

  5. Urteil zu Sofortüberweisung

    OLG empfiehlt Verbrauchern Einkauf im Ladengeschäft

  6. Hearthstone

    Blizzard schickt Spieler in die Straßen von Gadgetzan

  7. Jolla

    Sailfish OS in Russland als Referenzmodell für andere Länder

  8. Router-Schwachstellen

    100.000 Kunden in Großbritannien von Störungen betroffen

  9. Rule 41

    Das FBI darf jetzt weltweit hacken

  10. Breath of the Wild

    Spekulationen über spielbare Zelda



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Shadow Tactics im Test: Tolle Taktik für Fans von Commandos
Shadow Tactics im Test
Tolle Taktik für Fans von Commandos
  1. Civilization 6 Globale Strategie mit DirectX 12
  2. Total War Waldelfen stürmen Warhammer
  3. Künstliche Intelligenz Ultimative Gegner-KI für Civilization gesucht

Named Data Networking: NDN soll das Internet revolutionieren
Named Data Networking
NDN soll das Internet revolutionieren
  1. Geheime Überwachung Der Kanarienvogel von Riseup singt nicht mehr
  2. Bundesförderung Bundesländer lassen beim Breitbandausbau Milliarden liegen
  3. Internet Protocol Der Adresskollaps von IPv4 kann verzögert werden

Final Fantasy 15 im Test: Weltenrettung mit der Boyband des Wahnsinns
Final Fantasy 15 im Test
Weltenrettung mit der Boyband des Wahnsinns
  1. Square Enix Koop-Modus von Final Fantasy 15 folgt kostenpflichtig

  1. Re: Wikileaks ist nicht mehr im Kreis der Freunde

    divStar | 05:27

  2. Re: Die einzige App die HoloLens braucht um sich...

    divStar | 05:26

  3. Re: Schon 2x deshalb nicht bei Völkner und 1x...

    ClausWARE | 04:47

  4. Re: hä? gericht wieder einmal weltfremd?

    ClausWARE | 04:41

  5. Re: Selbst schuld, wer das benutzt (kt)

    ClausWARE | 04:19


  1. 18:27

  2. 18:01

  3. 17:46

  4. 17:19

  5. 16:37

  6. 16:03

  7. 15:34

  8. 15:08


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel