HTTP Security Header

HTTP Security Header sind ein wichtiger Bestandteil für die Sicherheit von Webseiten. Sie helfen gängige Angriffsszenarien wie SQL-Injections, XSS, Clickjackint etc. zu verhindern.

HTTP Strict Transport Security (HSTS)

Dieser Header erzwingt die Verwendung einer sicheren Verbindung vom Browser. Es wird also verhindert, dass Besucher eine unsichere Verbindung (über http) zu einer Seite aufbauen. Nur Anfragen an https werden erlaubt.

# Beispielcode apache 
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

# Beispielcode nginx 
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';

Content Security Policy (CSP)

Der Content Security Policy (CSP) ist ein Konzept, das die Sicherheit von Webseiten erhöht, indem es die Ausführung bestimmter Arten von Inhalten beschränkt. Diese Einschränkungen können auf Scripts, Stylesheets, Bilder und andere Ressourcen angewendet werden, die von einer Webseite geladen werden. Eine CSP-Richtlinie wird als HTTP-Header an den Browser gesendet und beschreibt, welche Arten von Inhalten erlaubt sind und welche nicht. Dies verhindert Angriffe wie Cross-Site-Scripting (XSS) und andere bösartige Aktivitäten auf einer Webseite.

# Beispielcode apache
Header always set Content-Security-Policy "default-src 'self'; font-src *;img-src * data:; s

# Beispielcode nginx
add_header Content-Security-Policy "default-src 'self'; font-src *;img-src * data:; script-s

X-XSS-Protection

Der X-XSS (Cross-Site-Scripting) Header wird verwendet um Cross-Site-Scripting Angriffe zu verhindern. Dieser Header teilt dem Browser mit, dass er möglicherweise bösartige Inhalte blockieren soll. Dieser Header kann nur Teil einer Reihe von Maßnahmen wie einer CSP oder entsprechend sicher programmierten Webseiten sein und biete alleine keine vollständige Sicherheit.

Parameter X-XSS-Protection: 

  • Wert ‚0‘: Der Filter wird deaktiviert
  • Wert ‚1‘: Der Filter ist aktiviert, der Browser entfernt unsichere Inhalte
  • Wert ‚1; mode=block‘: Statt unsichere Inhalte zu entfernen, wird die gesamte Seite blockiert
# Beispielcode apache
Header set X-XSS-Protection "1; mode=block"

# Beispielcode nginx
add_header X-XSS-Protection "1; mode=block";

X-Frame-Otions

Über den X-Frame Options Header kann gesteuert werden, ob und wo die Seite als iFrame eingebunden werden darf. Dies ist ein wirksames Mittel gegen Klickjacking Angriffe.

  • DENY: Die Seite darf nirgends als iFrame eingebunden werden
  • SAMEORIGIN: Die Seite darf als iFrame innerhalb der eigenen Domain eingebunden werden
  • ALLOW-FROM: Eine Liste von Domains, auf denen die Seite als iFram eingebunden werden darf
# Beispielcode apache
Header always set X-Frame-Options "SAMEORIGIN"

# Beispielcode nginx
add_header X-Frame-Options "SAMEORIGIN";

X-Content-Type-Options

Das X-Content-Type-Options Header ist ein HTTP-Header, der von einem Server gesendet wird, um dem Browser mitzuteilen, dass er keine Inhalte automatisch rendern soll, die nicht mit dem angegebenen MIME-Typ übereinstimmen. Dies verhindert, dass Angreifer gefährliche Inhalte wie Schadcode einschleusen können, die vom Browser als harmlos interpretiert werden. Wenn dieser Header gesetzt ist, wird der Browser nur Inhalte rendern, die explizit vom Server als sicher gekennzeichnet wurden.

# Beispielcode apache
Header always set X-Content-Type-Options "nosniff"

# Beispielcode nginx
add_header X-Content-Type-Options nosniff;

Referrer-Policy

Das Referrer-Policy Header ist ein HTTP-Header, der bestimmt, welche Informationen über die Quelle eines HTTP-Requests an den Server gesendet werden. 

Es gibt verschiedene Optionen für den Wert des Headers, wie z.B. "no-referrer", "same-origin", "strict-origin" oder "origin-when-cross-origin". Jede dieser Optionen legt fest, welche Art von Referrer-Informationen gesendet werden sollen und unter welchen Umständen.

# Beispielcode apache
Header always set Referrer-Policy "strict-origin"

# Beispielcode nginx
add_header Referrer-Policy "strict-origin";
prev SSH-Verbindungen über einen Proxy
next TYPO3 PageTitleProvider für eigene Extensions