Security Headers

X-Frame-Options

Bash
add_header X-Frame-Options "SAMEORIGIN" always;
  • Verhindert, dass deine Website in einem <iframe> auf fremden Domains eingebettet wird
  • Erlaubt Iframes nur von der gleichen Domain

Warum wichtig?

  • Schutz vor Clickjacking-Angriffen
  • Angreifer könnten deine Site in einem unsichtbaren iframe laden und Nutzer täuschen

Mögliche Werte

  • DENY = Nirgends einbetten erlaubt (auch nicht auf eigener Domain)
  • SAMEORIGIN = Nur auf gleicher Domain erlaubt
  • ALLOW-FROM https://example.com = Veraltet, nicht mehr nutzen

Beispiel Angriff

HTML
<!-- Böse Website evil.com -->
<iframe src="https://diestorytellerin.ch/wp-admin/"></iframe>
<!-- Nutzer denkt er ist auf deiner Site, ist aber auf evil.com -->

X-Content-Type-Options

Bash
add_header X-Content-Type-Options "nosniff" always;
  • Zwingt den Browser, den vom Server gesendeten Content-Type zu respektieren
  • Verhindert „MIME-Type Sniffing“

Warum wichtig?

  • Browser versuchen manchmal zu „erraten“ was eine Datei ist (z.B. JS statt Bild)
  • Angreifer könnten so JavaScript-Code in scheinbar harmlosen Dateien verstecken

Beispielangriff

HTML
1. Angreifer lädt bild.jpg hoch (ist aber JavaScript!)
2. Browser sieht .jpg, aber "snifft" den Inhalt
3. Browser erkennt: "Das ist JavaScript!" und führt es aus
4. Mit nosniff: Browser sagt "Nein, Server sagt image/jpeg, also behandle ich es als Bild"

X-XSS-Protection

Bash
add_header X-XSS-Protection "1; mode=block" always;
  • Aktiviert den XSS-Filter im Browser (für ältere Browser)
  • mode=block = Seite komplett blockieren wenn XSS erkannt wird

Warum wichtig?

  • Schutz vor Cross-Site-Scripting (XSS) Angriffen
  • Angreifer versuchen JavaScript-Code in deine Seite einzuschleusen

Mögliche Werte:

  • 0 = Filter deaktiviert
  • 1 = Filter aktiv, versucht Code zu sanitizen
  • 1; mode=block = Filter aktiv, blockiert die ganze Seite

Status: Veraltet aber harmlos:

  • Moderne Browser nutzen stattdessen CSP (Content-Security-Policy)
  • Chrome/Edge haben den XSS-Filter entfernt
  • Aber: Schadet nicht, es zu haben (für alte Browser)

Referrer-Policy

Bash
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
  • Steuert welche Informationen im Referer-Header gesendet werden
  • strict-origin-when-cross-origin = komplexe Regel (siehe unten)