Anzeige
Anzeige
Ratgeber
Artikel merken

Cross-Site-Scripting und mehr verhindern: Sichere Websites durch Security-Header

Der jüngste Datenklau auf Facebook zeigt: Websites sind immer noch von Attacken wie Cross-Site-Scripting betroffen. Durch Security-Header kannst du sichere Websites gestalten.

Von Verena Würbel
5 Min. Lesezeit
Anzeige
Anzeige

(Bild: Shutterstock)

Internet-Sicherheit aus dem HTTP-Header

Websites sind angreifbar. In der Kommunikation mit dem Nutzer müssen sie empfindliche Daten aufnehmen, verarbeiten und zurücksenden. In diesen Prozess können sich Hacker und Schad-Skripte einklinken. Sie manipulieren und ergänzen die Kommunikation, um Nutzerdaten auszulesen und ganze Websites lahm zu legen.

Anzeige
Anzeige

Gerade die Betreiber von Onlineshops sind hiervon betroffen. Werden Sicherheitslücken in ihrer Software bekannt, müssen sie schnell reagieren. Ansonsten droht ihnen Opfer einer Attacke oder eines Erpressers zu werden. Umso wichtiger ist es, das Thema Internet-Sicherheit nicht allein der Shop-Software zu überlassen. Mit Einstellungen am HTTP-Header können viele Sicherheitslücken geschlossen oder zumindest eingedämmt werden. Diese Einstellungen nennen wir Security-Header.

Im Folgenden stellen wir euch einige dieser Security-Header vor und zeigen, wogegen sie eingesetzt werden können. Im Anschluss erläutern wir euch, wie ihr diese Einstellungen in eurem Webserver hinzufügen könnt.

Anzeige
Anzeige

Wichtig vorab: Der erste Schritt zu einer sicheren Website ist ein SSL-Zertifikat. Security-Header funktionieren teilweise nur über eine HTTPS-Verbindung. Wir gehen bei der Beschreibung der Security-Header davon aus, dass du bereits ein SSL-Zertifikat verwendest.

Anzeige
Anzeige

Du willst wissen, wie gut deine Website bereits durch Security-Header geschützt ist? Unter diesem Link kannst du deine Website kostenlos testen lassen.

Security-Header im Überblick

Content-Security-Policy (CSP)

Mit einer Content-Security-Policy bestimmst du, von wo aus Inhalte auf deiner Website geladen werden dürfen. Dadurch kannst du zum Beispiel unterbinden, dass durch eingeschleusten Code ein Schad-Skript von außerhalb aufgerufen wird. Das hilft besonders gegen Cross-Site-Scripting, kurz XSS. Bei einer XSS-Attacke wird fremder Code, meist in Form von JavaScript, auf der Seite ausgegeben. Hacker nutzen hierbei Eingabe-Formulare oder Parameter in der URL.

Anzeige
Anzeige

Du kannst die CSP für Skripte (script-src) auf den Wert 'self' setzen. In diesem Fall wird deine Website nur noch JavaScript-Code ausführen, der auf deinem Server liegt. Wird auf der Website weiterer Code von vertrauenswürdigen Quellen eingesetzt, kann man diese als weitere Parameter ergänzen.

Durch diese Maßnahme wird Cross-Site-Scripting komplett unterbunden – jedoch auch jeglicher JavaScript-Code, der inline – also direkt im Quellcode der Website – aufgerufen wird. Du kannst deine Einstellungen erst einmal über die Test-Funktion Content-Security-Policy-Report-Only überprüfen.

X-XSS-Protection

Dieser Security-Header bietet einen zusätzlichen Schutz gegen Cross-Site-Scripting. Durch X-XSS-Protection überprüft der Browser übertragene Daten. Erkennt er dabei Muster von XSS, wird deren Ausgabe abgelehnt. Das ist besonders für Nutzer wichtig. Allerdings funktioniert die X-XSS-Protection am besten in Chrome. Andere Browser kennen den Security-Header zwar auch, setzen ihn aber nicht so gut um. Tests mit Firefox haben sogar ergeben, dass der Schutz gar nicht greift und XSS weiterhin möglich ist.

Anzeige
Anzeige

Die X-XSS-Protection sollte daher als Ergänzung zu einer gut eingestellten Content-Security-Policy genutzt werden. Aktiviert wird sie einfach durch das Setzen auf 1 und kann, wie auch die CSP, um eine Test-Ausgabe erweitert werden.

X-Frame-Options

Eine beliebte Methode von Kriminellen ist das sogenannte Clickjacking. Dabei wird eine Website unter einer anderen URL in einen Frame geladen. Dem ungeschulten Nutzer fällt dabei nicht auf, dass er nicht auf der eigentlichen Website aktiv ist. Über sensible Eingabe-Masken wie beispielsweise den Login werden dann unsichtbare Felder gelegt, die die eingegebenen Daten mitlesen. Im schlimmsten Fall gelangen die Betrüger so an zahlreiche Login-Daten.

Mit dem Security-Header X-Frame-Options kannst du Clickjacking unterbinden. Auf dem Wert DENY darf deine Website nicht mehr in einem Frame erscheinen. Stellst du die X-Frame-Options auf SAMEORIGIN, ist das Einbinden unter deiner eigenen Domain immer noch möglich.

Anzeige
Anzeige

X-Content-Type-Options

Bei der Anfrage einer Website werden meistens zusätzliche Dateien heruntergeladen. In der Regel sind das Bilder oder Skript-Dateien. Kann der Browser die Inhalte dieser Dateien nicht selbst wiedergeben fragt er den Nutzer, ob er die Datei herunterladen und ausführen will. Diese Komfort-Funktion kann auf verschiedenen Wegen für Drive-by-Downloads ausgenutzt werden. Über Cross-Site-Scripting beispielsweise kann Schad-Software auf einer Website platziert werden. Das geschieht meist unter der Tarnung einer Stylesheet-Datei. Beim Laden der Website wird die Schad-Software dann vom Nutzer ausgeführt. Das wurde im Zuge der Spectre-Meltdown-Krise massiv ausgenutzt.

Um zu verhindern, dass diese Drive-by-Downloads ausgeführt werden, kann der Security-Header X-Content-Type-Options eingerichtet werden. Auf den Wert nosniff gesetzt, werden Skript-Dateien geprüft. Ist der MIME-Typ nicht wie angegeben CSS oder JavaScript, wird die Datei nicht ausgeführt.

Referrer-Policy

Über den HTTP-Header werden nicht nur die hier präsentierten Security-Header übergeben. Darin können sich auch Information über den Webserver und die Aktivität des Nutzers befinden. Eine dieser Angaben ist der Referrer-Header. Klickt ein Nutzer auf einen Link, dann wird die Angabe der Ausgangsseite an die Zielseite übertragen. Das wird im Referrer-Header gespeichert. Auf der Basis dieser Angaben lassen sich Informationen ermitteln. Diese sind zum Beispiel für Tracking-Software wie Google-Analytics relevant.

Anzeige
Anzeige

Durch eine Referrer-Policy kannst du festlegen, an welche Seiten diese Nutzer-Information weitergeleitet werden soll. Auf dem Wert no-referrer betrifft dies alle Seiten. Wird er dagegen auf no-referrer-when-downgrade gesetzt, so werden Websites ausgeschlossen, die weniger sicher sind.

Security-Header selbst einrichten

Im Apache-Webserver

Wir empfehlen, die Einstellungen der Security-Header in der Konfiguration des Webservers vorzunehmen. In der weit verbreiteten Webserver-Software Apache lassen sich die Beispiele von oben in die Datei „httpd.conf“ eintragen:

<code>

<IfModule mod_headers.c>

<Directory />

Header always set Content-Security-Policy „script-src ’self'“

Header always set X-XSS-Protection „1“

Header always set X-Frame-Options „SAMEORIGIN“

Header always set X-Content-Type-Options „nosniff“

Header always set Referrer-Policy „no-referrer-when-downgrade“

</Directory>

</IfModule>

Im Nginx-Webserver

Der moderne Webserver gewinnt immer mehr an Popularität. Nginx ist auf die Beschleunigung von Antwortzeiten optimiert. Dadurch verkürzt es die Ladezeiten einer Website.

Anzeige
Anzeige

Die Konfigurations-Datei befindet sich üblicherweise im Unterordner „conf.d“ unter dem Namen deiner Domain. Für die Domain „example.com“ wäre das zum Beispiel „example.com.conf“. Im Block „server“ wird Folgendes ergänzt:

<code>

server {

add_header Content-Security-Policy „script-src ’self'“;

add_header X-XSS-Protection „1“;

add_header X-Frame-Options „SAMEORIGIN“;

add_header X-Content-Type-Options „nosniff“;

add_header Referrer-Policy „no-referrer-when-downgrade“;

}

</code>

Fazit

Durch die Einrichtung der Security-Header kann mit wenig Aufwand viel für eine sichere Website erreicht werden. Wichtig ist dabei zu berücksichtigen, dass die Maßnahmen nicht allein für eine sichere Website sorgen können. Viel mehr arbeiten sie im Verbund mit anderen Schutz-Maßnahmen, um Attacken wie Cross-Site-Scripting zu verhindern.

Hast du die beschriebenen Security-Header eingefügt? Dann ruf doch nochmal den Link von oben auf und teste deine Website erneut. Mit Sicherheit wirst du nun eine viel bessere Einstufung erhalten.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige