Content Security Policy: Schutz vor Cross-Site-Scripting

Mit der Version 23 soll Firefox offiziell Unterstützung für Content Security Policy erhalten. Die ermöglicht es Webentwicklern, Angriffe durch Cross-Site-Scripting (XSS) deutlich zu erschweren.

Artikel veröffentlicht am , Hanno Böck
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)

Sogenannte XSS- oder Cross-Site-Scripting-Angriffe gehören zu den größten Sicherheitsproblemen bei Webanwendungen. Gelingt es einem Angreifer, Javascript-Code in eine durch einen Login geschützte Webseite einzuschleusen, sind beliebige Angriffe möglich. Ein Angreifer kann die Session seines Opfers übernehmen, Daten löschen und verändern oder auch seinem Opfer fehlerhafte Seiteninhalte vorgaukeln.

Inhalt:
  1. Content Security Policy: Schutz vor Cross-Site-Scripting
  2. Bilder, Fonts und andere

Browserhersteller arbeiten seit einigen Jahren unter dem Dach des Standardisierungsgremiums W3C an einem System, welches derartige Angriffe deutlich erschweren soll. Mit Content Security Policy können die Entwickler einer Webanwendung detailliert festlegen, aus welchen Quellen Javascript-Code oder andere Inhalte wie etwa Bilder von einer Webseite genutzt werden können. Mit der übernächsten Version 23 soll das Konzept nun offiziell Einzug in den Firefox-Browser halten. Chrome unterstützt Content Security Policy bereits seit Version 25.

XSS-Angriffe häufiges Problem

Cross-Site-Scripting-Angriffe sind immer dann möglich, wenn eine Webseite externe Eingaben ungefiltert im HTML-Code ausgibt. Ein Beispiel wäre etwa eine Webseite, die dem User ein Suchformular anbietet, welches eine URL der Form http://beispiel.com/suche?suchbegriff=test ansteuert. Ein Angreifer kann nun durch den Aufruf etwa von

http://beispiel.com/suche?suchbegriff=<script>somecode()</script>

versuchen, dort Javascript-Code einzuschleusen.

Stellenmarkt
  1. Teamleiter (w/m/d) IT-Projekt- & Produktmanagement
    Bw Bekleidungsmanagement GmbH, Köln
  2. IT Coordinator - 1st und 2nd Level Support (m/w/d)
    Engelbert Strauss GmbH & Co. KG, Biebergemünd
Detailsuche

Üblicherweise sollte daher jede Eingabe, die von einer möglicherweise nicht vertrauenswürdigen Quelle stammt, gefiltert werden. HTML-Sonderzeichen wie <, > und & müssen entweder entfernt oder entsprechend umgewandelt werden. Doch häufig vergessen Webentwickler dies und eine Cross-Site-Scripting-Lücke entsteht.

HTTP-Header verhindert Angriffe

Content Security Policy besteht im Kern aus einem HTTP-Header. Ein einfaches Beispiel wäre der Header Content-Security-Policy: script-src 'self'. In PHP könnte dieser etwa mit dem Befehl header("Content-Security-Policy: script-src 'self'") übertragen werden.

Zahlreiche Browserhersteller haben schon längere Zeit unfertige Implementierungen von Content Security Policy ausgeliefert. Diese wurden dann aber mit anderen Headernamen genutzt. Firefox etwa verwendete bisher x-Content-Security-Policy, Webkit-basierte Browser wie Chrome oder Safari dagegen X-Webkit-CSP. Seit Version 25 unterstützt Chrome den Standard-Header-Namen Content-Security-Policy, in Firefox wird dies mit der offiziellen Einführung in Version 23 passieren.

Das oben genannte Beispiel script-src 'self' bedeutet nun, dass Scripte ausschließlich vom eigenen Server nachgeladen werden können. So kann etwa im Header einer Seite Javascript-Code mit der HTML-Direktive

<script type="text/javascript" src="beispiel.js"></script>

eingefügt werden. Soll nun zusätzlich externer Javascript-Code ermöglicht werden, muss der Header entsprechend angepasst werden. Angenommen, der Javascript-Code für Google Ads soll verwendet werden. Der entsprechende HTML-Code lautet

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

Damit wird zusätzlich die Domain pagead2.googlesyndication.com zugelassen. Der Inhalt des Content Security Policy-Headers muss dann noch in script-src 'self' pagead2.googlesyndication.com geändert werden. Die Sicherheitsrichtlinien können aber nicht nur für Code definiert werden.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Bilder, Fonts und andere 
  1. 1
  2. 2
  3.  


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*



Aktuell auf der Startseite von Golem.de
Raumfahrt
SpaceX-Rakete stürzt voraussichtlich im März auf den Mond

Ob sich Elon Musk so die erste Ankunft einer SpaceX-Rakete auf dem Mond vorgestellt hat?

Raumfahrt: SpaceX-Rakete stürzt voraussichtlich im März auf den Mond
Artikel
  1. G413 SE, G413 TKL SE: Logitech bringt zwei mechanische Tastaturen für weniger Geld
    G413 SE, G413 TKL SE
    Logitech bringt zwei mechanische Tastaturen für weniger Geld

    Normalerweise sind mechanische Tastaturen von Logitech sehr teuer - nicht so die G413 SE und TKL SE. Die verzichten dafür auf RGB.

  2. Deutschland: E-Commerce wird immer mehr zum Normalfall
    Deutschland
    E-Commerce wird immer mehr zum Normalfall

    E-Commerce wird immer mehr als das Normale und Übliche empfunden, meint der Bundesverband E-Commerce und Versandhandel.

  3. Letzte Meile: Telekom will Preise für VDSL-Vermietung stark erhöhen
    Letzte Meile
    Telekom will Preise für VDSL-Vermietung stark erhöhen

    Die Telekom will von 1&1, Vodafone und Telefónica künftig erheblich mehr für die Anmietung der letzten Meile.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • RTX 3090 24GB 2.349€ • RTX 3070 Ti 8GB 1.039€ • 1TB SSD PCIe 4.0 127,67€ • RX 6900XT 16 GB 1.495€ • Razer Gaming-Tastatur 155€ • LG OLED 65 Zoll 1.599€ • Razer Gaming-Maus 39,99€ • RX 6800XT 16GB 1.229€ • GOG New Year Sale: bis zu 90% Rabatt • Razer Gaming-Stuhl 179,99€ [Werbung]
    •  /