Sicherheitsheader setzen: HSTS, CSP, X-Frame-Options richtig nutzen

Sicherheitsheader sind ein wichtiger Bestandteil der Absicherung von Webanwendungen. Sie steuern, wie Browser Inhalte verarbeiten, verhindern Angriffe wie Clickjacking, Cross-Site-Scripting (XSS) und erzwingen verschlüsselte Verbindungen. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie HSTS, Content Security Policy (CSP) und X-Frame-Options korrekt gesetzt werden, um Webserver wie Nginx und Apache abzusichern.

HTTP Strict Transport Security (HSTS)

HSTS sorgt dafür, dass Browser automatisch HTTPS nutzen, auch wenn eine HTTP-URL eingegeben wird. Dadurch wird Man-in-the-Middle-Angriffen vorgebeugt.

HSTS Header Syntax

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  • max-age: Dauer in Sekunden, wie lange der Browser HTTPS erzwingt (z.B. 1 Jahr = 31536000)
  • includeSubDomains: Optional, erzwingt HTTPS auch für alle Subdomains
  • preload: Optional, fügt die Domain in die HSTS-Preload-Liste der Browser ein

Apache Konfiguration

sudo nano /etc/apache2/sites-available/meinewebsite.conf
<VirtualHost *:443>
    ServerName meinewebsite.de
    DocumentRoot /var/www/html
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Nginx Konfiguration

server {
    listen 443 ssl;
    server_name meinewebsite.de www.meinewebsite.de;
root /var/www/html;

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

}

Content Security Policy (CSP)

CSP schützt vor XSS-Angriffen, indem es festlegt, welche Quellen für Skripte, Styles, Bilder und andere Inhalte erlaubt sind.

Grundsyntax

Content-Security-Policy: default-src 'self'; script-src 'self' https://apis.google.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:;
  • default-src: Standardquellen für Inhalte
  • script-src: erlaubte Skriptquellen
  • style-src: erlaubte Stylesheets
  • img-src: erlaubte Bildquellen

Apache Konfiguration

Header always set Content-Security-Policy "default-src 'self'; script-src 'self' https://apis.google.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:;"

Nginx Konfiguration

add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://apis.google.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:;" always;

X-Frame-Options

Der Header X-Frame-Options verhindert, dass eine Website in einem Frame, IFrame oder Objekt von einer anderen Domain eingebettet wird. Dies schützt vor Clickjacking.

Optionen

  • DENY: Kein Einbetten erlaubt
  • SAMEORIGIN: Nur die gleiche Domain darf einbetten
  • ALLOW-FROM uri: Bestimmte Domains erlauben

Apache Konfiguration

Header always set X-Frame-Options "SAMEORIGIN"

Nginx Konfiguration

add_header X-Frame-Options "SAMEORIGIN" always;

Weitere Sicherheitsheader

Zusätzlich können weitere Header gesetzt werden, um die Sicherheit weiter zu erhöhen.

  • X-Content-Type-Options: Verhindert MIME-Sniffing, Beispiel: add_header X-Content-Type-Options "nosniff" always;
  • Referrer-Policy: Kontrolliert, welche Referrer-Informationen gesendet werden, Beispiel: add_header Referrer-Policy "no-referrer-when-downgrade" always;
  • Feature-Policy / Permissions-Policy: Regelt den Zugriff auf Browser-Features, Beispiel: add_header Permissions-Policy "geolocation=(), microphone=()" always;

Testing und Monitoring

Nach dem Setzen der Sicherheitsheader sollte die Konfiguration getestet und überwacht werden, um die Wirksamkeit sicherzustellen.

Header prüfen

curl -I https://meinewebsite.de

Online Tools

  • https://securityheaders.com/
  • https://observatory.mozilla.org/

Best Practices

  • Alle Header in der HTTPS-Konfiguration setzen
  • Subdomains über HSTS einbeziehen
  • CSP schrittweise testen, um bestehende Skripte nicht zu blockieren
  • Regelmäßig Konfiguration überprüfen und an neue Sicherheitsanforderungen anpassen
  • Logs überwachen, um Sicherheitsverletzungen frühzeitig zu erkennen

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles