Paranoic Hardening: HTTP-Header, HSTS und Autologout

Verfasst von

in

Der Reiter „⚠ Paranoic Hardening“ des Plugins CSDN sammelt die heikelsten Optionen: die HTTP-Sicherheitsheader, HSTS und die automatische Abmeldung inaktiver Administratoren. Hier änderst du das Verhalten des Browsers deiner Besucher, nicht nur das des Servers. Deshalb ist standardmäßig alles ausgeschaltet.

Schema von WordPress mit dem hervorgehobenen Reiter Paranoic Hardening des Plugins CSDN

Wo du es findest

Geh im Seitenmenü von WordPress zu Einstellungen und wähl Cisilino Site Defense Network (Punkt 1 im Bild). Öffne den Reiter „⚠ Paranoic Hardening“ (Punkt 2). Zum Speichern brauchst du die Berechtigung manage_options; bei Multisite manage_network_options.

Der Reiter hat vier Abschnitte. Bei Punkt 3 findest du „Paranoic Hardening — HTTP-Sicherheitsheader“. Bei Punkt 4 steht „HTTP Strict Transport Security (HSTS)“. Punkt 5 ist „Sicherheitsheader prüfen“. Punkt 6 ist „Autologout inaktiver Administratoren“.

Wozu es dient

Header sind Anweisungen, die die Website mit jeder Seite an den Browser sendet. Das Plugin sendet sie über den WordPress-Hook send_headers, ohne die Datei .htaccess zu berühren. Du riskierst also keinen 500-Fehler, und sie funktionieren auch ohne mod_headers.

Die Header betreffen nur die öffentliche Website. Sie werden nie im Verwaltungsbereich gesendet. Das Plugin bietet keine Content-Security-Policy und sendet kein X-XSS-Protection.

Wie du Paranoic Hardening benutzt

HTTP-Sicherheitsheader (Punkt 3)

  • X-Content-Type-Options sendet nosniff. Der Browser „errät“ den Dateityp nicht mehr. Das Risiko ist praktisch null.
  • X-Frame-Options sendet SAMEORIGIN. Die Website lässt sich nicht mehr in einen <iframe> einer anderen Domain einbetten. Zeigt eine Partner-Website deine Seiten, hört das auf.
  • Referrer-Policy sendet strict-origin-when-cross-origin. Zu anderen Domains reist nur die Domain, nicht der Pfad. Statistikdienste Dritter, die den vollständigen Referrer wollen, erhalten ihn nicht.

Kreuz die Kästchen an, die du brauchst, und klick auf Paranoic Hardening speichern. Du siehst den Hinweis „Einstellungen von Paranoic Hardening gespeichert und angewendet.“ Nicht angekreuzte Kästchen werden als ausgeschaltet gespeichert.

HSTS (Punkt 4)

HSTS sagt dem Browser, immer https mit deiner Domain zu nutzen. Es gibt drei Kästchen: „HSTS aktivieren“, „includeSubDomains“ und „Preload“. Der gesendete Header hat max-age=31536000, das ist ein Jahr. Der Wert ist fest und lässt sich nicht ändern.

Das Plugin lehnt die Aktivierung ab, wenn die Seite nicht über https geöffnet wurde. In dem Fall speichert es den Rest und zeigt einen roten Hinweis: „Einstellungen gespeichert, aber HSTS wurde NICHT aktiviert: diese Anfrage kam nicht über https. Öffne das Panel über https und versuch es erneut.“ Ist die Seite über http, sind die drei Kästchen zudem deaktiviert.

Schaltest du „HSTS aktivieren“ aus, werden beim Speichern auch „includeSubDomains“ und „Preload“ zurückgesetzt. Aktivierst du HSTS erneut, musst du sie erneut ankreuzen.

Sicherheitsheader prüfen (Punkt 5)

Klick auf Jetzt prüfen. Das Plugin stellt eine echte Anfrage an die Startseite und prüft, welche Header wirklich ankommen. Das Ergebnis erscheint im Kasten, mit dem Datum des letzten Tests.

  • Grün: „Alle erwarteten Header sind in der echten Antwort der Website vorhanden.“
  • Rot: die aktiven Header, die nicht angekommen sind. Es kann ein Proxy, eine CDN oder ein anderes Plugin sein, das sie entfernt. HSTS gilt auch als fehlend, wenn die Adresse der Startseite http ist und nicht zu https führt, weil das Plugin es nur bei https-Anfragen sendet.
  • Blau: „Kein aktiver Header zu prüfen: aktiviere oben mindestens eine Option und speichere.“
  • Rot mit „Prüfanfrage fehlgeschlagen“: Die Anfrage war nicht erfolgreich.

Der Test prüft das Vorhandensein des Headers, nicht seinen Wert. Er startet nicht von selbst: Du musst ihn selbst klicken.

Autologout der Administratoren (Punkt 6)

Dieser Abschnitt von Paranoic Hardening hat seine eigene Schaltfläche, Autologout der Administratoren speichern. Kreuz „Aktivieren“ an, um inaktive Administratoren abzumelden. Stell dann das „Inaktivitäts-Timeout (Sekunden)“ ein. Blockiert der Browser localStorage (zum Beispiel im privaten Modus), greift die Prüfung nie, und du wirst nicht abgemeldet.

Der Standardwert ist 900, das sind 15 Minuten. Das Minimum ist 60, das Maximum 86400. Schreibst du eine Zahl außerhalb der Grenzen, bringt das Plugin sie auf den nächsten erlaubten Wert. Zum Beispiel wird 30 zu 60. Der Hinweis bleibt grün, lies also die Zahl im Feld nach dem Speichern erneut.

Abgemeldet werden nur Benutzer mit der Berechtigung manage_options. Redakteure und Autoren werden nicht berührt. Die Inaktivität wird im Browser gemessen: Maus, Tastatur, Scrollen und Berührung zählen. Die Sitzung schließt wie mit „Abmelden“, und nicht gespeicherte Änderungen in einem offenen Formular gehen verloren.

Empfohlene Aktivierungsreihenfolge

  1. Öffne das Panel über https.
  2. Aktiviere X-Content-Type-Options, speichere und klick auf „Jetzt prüfen“.
  3. Aktiviere Referrer-Policy, speichere und prüfe.
  4. Prüfe, dass keine Website deine einbettet, dann aktiviere X-Frame-Options, speichere und prüfe.
  5. Aktiviere Autologout mit einem großzügigen Timeout, zum Beispiel 1800. Verringere es erst nach einigen Tagen.
  6. Erwäge zuletzt HSTS, ohne includeSubDomains und ohne Preload.

Aktiviere eine Option nach der anderen. Geht etwas kaputt, weißt du sofort, welche es war.

Das Risiko von HSTS, includeSubDomains und Preload

Achtung: HSTS lässt sich nicht von der Website aus rückgängig machen. Nimmst du das Häkchen weg, hört das Plugin auf, den Header zu senden, aber Browser, die ihn schon erhalten haben, erinnern sich bis zum Ablauf. Das Plugin sendet nie max-age=0, hat also kein „Abbrechen“. Das sagt auch das Banner des Reiters: Die Wirkung kann Wochen oder Monate sichtbar bleiben.

Mit aktivem HSTS lehnt der Browser jede nicht-https-Verbindung zur Domain ab. Läuft das Zertifikat ab oder bricht es, zeigt der Browser nicht mehr einmal den Hinweis „trotzdem fortfahren“. Die Website bleibt für diesen Browser unerreichbar.

  • includeSubDomains weitet die Regel auf alle Subdomains aus. Eine einzige Subdomain ohne gültiges https, auch eine Test- oder zukünftige, wird für jeden unerreichbar, der die Website schon besucht hat. Aktiviere es nur, wenn alle Subdomains https sind und bleiben.
  • Preload fügt dem Header nur das Flag preload hinzu. Allein trägt es die Website nicht ein: Die Übermittlung an die Browser-Liste erfolgt von Hand auf hstspreload.org. Die Liste steckt in den Browsern, und das Entfernen dauert Wochen. Betrachte Preload als endgültige Entscheidung.

Speichere immer von der https-Version des Panels aus. Deaktivierte Kästchen werden vom Browser nicht gesendet: Speicherst du von einer http-Seite aus, schalten sich HSTS und seine Unteroptionen aus.

Was im Hintergrund passiert

Die Einstellungen von Paranoic Hardening sind WordPress-Optionen, keine Serverregeln. Der Autologout druckt ein Skript nur in den Verwaltungsseiten. Das Skript speichert die letzte Aktivität im localStorage des Browsers und prüft alle 5 Sekunden das Timeout. Beim Ablauf bittet es admin-ajax.php, die Abmeldung auszuführen, und bringt dich zur Login-Seite. Das Speichern landet im Aktivitätsprotokoll nur, wenn du etwas geändert hast.

Wenn etwas nicht funktioniert

  • Der Kasten ist nach „Jetzt prüfen“ rot: Ein Proxy, eine CDN oder ein anderes Plugin entfernt die Header. Prüf ihre Konfiguration.
  • Eine Partner-Website zeigt deine Seiten nicht mehr: Nimm das Häkchen bei X-Frame-Options weg und speichere.
  • Du schaffst es nicht, HSTS zu aktivieren: Öffne das Panel erneut mit der https-Adresse.
  • Um die Header von Hand zu prüfen, kannst du die Entwicklertools des Browsers oder curl -I auf die https-Adresse der Website nutzen.

Um besser zu verstehen, wie HSTS funktioniert, lies die Seite Strict-Transport-Security bei MDN. Sie erklärt max-age, includeSubDomains und preload präzise.

Vorheriges Kapitel: Reiter Test: prüfen, ob die Schutzmaßnahmen funktionieren. Nächstes Kapitel: Benutzerregistrierung: wer Konten anlegen darf. Für das allgemeine Verzeichnis geh zu Kapitel 1 des Handbuchs.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Hinweis von Real Cookie Banner