Ich habe damit begonnen, meine WordPress-Site vollständig auf SSL umzustellen, und ein Teil dieses Prozesses war die Verwendung des HTTP Strict Transport Security (HSTS)-Headers auf der Site.
Bei all den Sicherheitsverletzungen, die wir gerade im letzten Jahr erlebt haben, ist es absolut sinnvoll, alles auf SSL umzustellen. Google beginnt bereits, SSL-Websites in den Suchergebnissen zu bevorzugen, und es schafft mehr Vertrauen bei Ihren Besuchern, wenn sie sehen, dass Ihre Website über SSL gesichert ist.
Ich hatte bereits 301-Weiterleitungen von Nicht-SSL- zu SSL-Seiten auf meiner Website vorgenommen, wollte aber sicherstellen, dass alle Seiten und Abfragen in Zukunft automatisch als SSL gesendet und empfangen werden. Sie können dies in Browsern erzwingen, indem Sie den Strict Transport Security-Header zu jeder Ihrer Seitenanfragen in WordPress hinzufügen.
Wichtigste Erkenntnisse
- HTTP Strict Transport Security (HSTS)-Header schützen Ihre WordPress-Site, indem sie erzwingen, dass alle Anfragen über SSL geladen werden.
- Websites, die HSTS verwenden, sind sicherer und werden in Suchmaschinen wie Google besser bewertet.
- Nachdem Sie HSTS auf Ihrer WordPress-Website aktiviert haben, können Sie Ihre Website für zusätzliche Sicherheit und Schutz zu einer speziellen Preload-Liste hinzufügen.
Zu diesem Zweck werden Sie die send_headers
Action Hook, mit dem zusätzliche Header zu Ihren ausgehenden HTTP-Antworten hinzugefügt werden können. Es mag offensichtlich sein oder nicht, aber Sie müssen sicherstellen, dass Ihre Website ein funktionierendes SSL-Zertifikat hat, damit diese Implementierung funktioniert! Fügen Sie einfach den folgenden Code in Ihr Theme ein functions.php
Datei und Sie haben HTTP Strict Transport Security (HSTS) für Ihre WordPress-Website aktiviert.
/**
* Enables the HTTP Strict Transport Security (HSTS) header in WordPress.
*/
function tg_enable_strict_transport_security_hsts_header_wordpress() {
header( 'Strict-Transport-Security: max-age=31536000' );
}
add_action( 'send_headers', 'tg_enable_strict_transport_security_hsts_header_wordpress' );
Dies fügt den Strict Transport Security-Header für ein Jahr hinzu, der erforderlich ist, wenn Sie später für das HSTS-Preloading in Browsern wie Chrome, Firefox und Safari in Frage kommen wollen.
Möchten Sie eine WordPress-Website, die sicher UND schnell ist? Meine Freunde bei WP Engine bieten 3 Monate kostenlos auf alle Jahrespläne. Klicken Sie hier, um Ihr spezielles WP Engine-Angebot in Anspruch zu nehmen!
HSTS-Vorspannung
Durch das Hinzufügen der Kopfzeile Strict Transport Security zu Ihrer Website sichern Sie jeden Besuch Ihrer Besucher , außer dem ersten Besuch. Damit ist Ihre Website beim ersten Besuch immer noch anfällig für MITM-Angriffe (Man-in-the-Middle). Deshalb gibt es eine Technik namens "Preloading", mit der Ihre Website zu einer vorausgefüllten Domainliste hinzugefügt wird.
Sobald Ihre Website auf dieser Liste steht, werden die wichtigsten Browser, die das HSTS-Preloading unterstützen, benachrichtigt, dass Ihre Website SSL benötigt, und jeder Besuch, auch der allererste eines Besuchers, wird automatisch über SSL abgewickelt.
Wenn Sie diese Funktion für Ihre Website aktivieren möchten, müssen Sie einige Voraussetzungen erfüllen, bevor Sie diese Funktion aktivieren können.
- Besitzen Sie ein gültiges SSL-Zertifikat. Ohne dieses Zertifikat können Sie nichts von alledem tun.
- Sie müssen den gesamten HTTP-Verkehr auf HTTPS umleiten (empfohlen durch permanente 301-Umleitungen). Das bedeutet, dass Ihre Website nur über HTTPS erreichbar sein sollte.
- Sie müssen auch alle Subdomains über HTTPS bedienen. Wenn Sie Subdomains haben, benötigen Sie dafür ein Wildcard-SSL-Zertifikat.
- Senden Sie einen HSTS-Header an die Basisdomäne (z. B. thomasgriffin.com), der die folgenden Anforderungen erfüllt:
- Die Gültigkeitsdauer muss mindestens 1 Jahr betragen.
- Die
includeSubDomains
Token muss in der Kopfzeile angegeben werden. - Die
preload
Token muss in der Kopfzeile angegeben werden. - Wenn Sie eine Weiterleitung anbieten, muss diese Weiterleitung ebenfalls den HSTS-Header haben, nicht nur auf den Seiten, auf die sie weiterleitet.
Wenn Sie alle diese Anforderungen erfüllt haben, können Sie diesen Code in Ihrem functions.php
Datei, um das HSTS-Vorladen zu unterstützen.
/**
* Enables the HTTP Strict Transport Security (HSTS) header in WordPress.
* Includes preloading with subdomain support.
*/
function tg_enable_strict_transport_security_hsts_header_wordpress() {
header( 'Strict-Transport-Security: max-age=31536000; includeSubDomains; preload' );
}
add_action( 'send_headers', 'tg_enable_strict_transport_security_hsts_header_wordpress' );
Wenn nun Besucher auf Ihre Website kommen, wird der Browser benachrichtigt, dass Sie in die Vorladeliste aufgenommen werden möchten. Wenn Sie alle Anforderungen erfüllen, sollte Ihre Website innerhalb weniger Monate in diese Liste aufgenommen werden.
Wenn Sie den Preload-Status Ihrer Website überprüfen möchten, können Sie dies hier tun: https://hstspreload.org/
Das sollte alles sein! Sie haben nun HTTP Strict Transport Security auf Ihrer WordPress-Website aktiviert!
Hallo Thomas, toller Artikel!
Ich denke, dass es am besten ist, HSTS auf der Serverebene zu aktivieren, indem man ".htacess" verwendet. So spart man sich die Ressourcen, die WP zuerst lädt, und man verhindert auch den frühen Zugriff auf HTTP-Ressourcen, bevor Plugins geladen werden.
Hallo Samuel,
Ich stimme zu, dass dies der beste Weg ist, aber für die meisten Menschen ist es weder praktisch noch verfügbar. Die Option, HTTP Strict Transport Security (HSTS) in WordPress zu aktivieren, steht allen zur Verfügung und bietet die gleichen Vorteile.