Direkt zum Inhalt

Cookie-Einstellungen

Wählen Sie, welche Arten von Cookies Sie erlauben. Sie können Ihre Auswahl jederzeit über Cookie-Einstellungen unten auf jeder Seite ändern. Datenschutzerklärung

Notwendig

Immer aktiv

Nötig zum Einloggen, für Ihren Warenkorb und um Ihre Auswahl zu speichern. Diese sind immer aktiv.

Welche Cookies?
  • weboke_sessie, weboke_klant, weboke_remember: Ihre Sitzung und eingeloggt bleiben
  • weboke_basket: Ihr Warenkorb
  • wkBtwIncl: Preise mit oder ohne MwSt. anzeigen
  • wok_cookies: Ihre Cookie-Auswahl, 12 Monate

Misst, welche Anzeige zu einem Besuch oder einer Bestellung führt, damit wir nicht für Anzeigen zahlen, die nichts bringen.

Welche Cookies?
  • Google Ads über Google Tag Manager (_gcl_au, _gcl_aw), bis zu 90 Tage
  • OpenAI Ads, Anzeigen in ChatGPT
  • wok_aff: über welchen Partner Sie zu uns kamen (Partnerprogramm), 60 Tage

4,6

Land und Sprache

Jedes Land hat seine eigene Website, mit Preisen und MwSt. dieses Landes.

Anzeigen

HSTS und Sicherheitsheader für Ihre Website

Bei jeder Seite sendet Ihr Webserver Header mit: kurze Zeilen mit Anweisungen für den Browser. Sie bestimmen zum Teil, wie sicher der Browser mit Ihrer Website umgeht. Hier lesen Sie, was HSTS ist, welche weiteren Sicherheitsheader es gibt und wie Sie diese einrichten und testen.

Zuerst muss Ihre Website ein funktionierendes Zertifikat haben und Besucher auf https weiterleiten. Wie das geht, lesen Sie in SSL-Zertifikat aktivieren, erneuern und Probleme lösen und Besucher verpflichtend auf https weiterleiten.

Was bewirkt HSTS?

Die Weiterleitung auf https hat einen Schwachpunkt: Die erste Anfrage über http erfolgt noch unverschlüsselt. Jemand im selben Netzwerk, zum Beispiel in einem öffentlichen WLAN, kann diese Anfrage abfangen. HSTS (HTTP Strict Transport Security) löst dieses Problem. Ihre Website sendet über https diesen Header mit:

Strict-Transport-Security: max-age=31536000

Der Browser merkt sich dann, dass er Ihre Website nur über https öffnen darf. Gibt ein Besucher später http:// ein, macht der Browser selbst https daraus, noch bevor etwas über das Netzwerk gesendet wird. Einen HSTS-Header, der über einfaches http ankommt, ignoriert der Browser.

BestandteilBedeutung
max-ageWie lange sich der Browser die Anweisung merkt, in Sekunden. Der Test von internet.nl wertet mindestens ein Jahr (31536000) als ausreichend.
includeSubDomainsGilt auch für alle Subdomains, zum Beispiel shop.ihre-domain.de und mail.ihre-domain.de.
preloadSie beantragen die Aufnahme in die Liste, die fest in Browser eingebaut ist (hstspreload.org). Dann ist sogar der allererste Besuch geschützt. Dafür sind unter anderem ein Jahr, includeSubDomains und https auf allen Subdomains erforderlich. Wieder von der Liste entfernt zu werden, dauert lange.
max-age=0Löscht die gespeicherte Anweisung wieder, beim nächsten Besuch über https.
Aktivieren Sie HSTS erst, wenn https überall funktioniert. Hat sich ein Browser HSTS gemerkt und erkennt er einen Zertifikatsfehler, erhält der Besucher keine Schaltfläche, um trotzdem fortzufahren. Läuft Ihr Zertifikat ab oder passt es nicht für www, ist Ihre Website für diese Besucher unerreichbar, bis das Problem behoben ist. Mit includeSubDomains gilt das auch für jede Subdomain, zum Beispiel eine alte Kamera- oder Druckerseite ohne Zertifikat. Gehen Sie deshalb schrittweise vor: Beginnen Sie mit einem kurzen max-age, zum Beispiel einem Tag (86400), prüfen Sie, ob alles funktioniert, und erhöhen Sie den Wert schrittweise auf ein Jahr.

HSTS bei WebOké

Auf den meisten unserer Server sendet der Webserver HSTS standardmäßig für jede Website mit, die über https aufgerufen wird: Strict-Transport-Security: max-age=31536000. Das ist ein Jahr, ohne includeSubDomains und ohne preload. Dafür müssen Sie nichts tun. Auf einigen wenigen Servern ist es nicht standardmäßig aktiviert; dort aktivieren Sie es selbst. Ob Ihre Website HSTS bereits mitsendet und mit welchem max-age, sehen Sie in den Entwicklertools Ihres Browsers oder im Test von internet.nl (siehe unten).

Der HSTS-Schalter in DirectAdmin

Gehen Sie in DirectAdmin zu Domains und klicken Sie auf Ihren Domainnamen. Ist Secure SSL aktiviert, sehen Sie bei HSTS den Schalter Enable HTTP Strict Transport Security. Klicken Sie anschließend auf Save, um zu speichern. Wie das Schritt für Schritt funktioniert, lesen Sie in Besucher immer auf https weiterleiten.

Sendet Ihre Website bereits HSTS mit, benötigen Sie den Schalter nicht. Aktivieren Sie ihn nur, wenn Ihre Website noch kein HSTS sendet. Richten Sie HSTS an einer einzigen Stelle ein: in DirectAdmin oder in .htaccess, nicht in beiden. Erhält der Browser zwei HSTS-Header, verwendet er nur den ersten.

Die weiteren Sicherheitsheader

HeaderSchützt vorWert für den Einstieg
X-Content-Type-OptionsDer Browser errät selbst, um welche Art von Datei es sich handelt, sodass ein hochgeladenes „Bild“ als Skript ausgeführt werden kann.nosniff (der einzige gültige Wert)
Content-Security-Policy: frame-ancestors oder X-Frame-OptionsClickjacking: Eine andere Website lädt Ihre Seite unsichtbar in einen Frame, sodass Besucher unbemerkt auf Ihre Schaltflächen klicken.frame-ancestors 'self' oder der ältere Header X-Frame-Options: SAMEORIGIN
Referrer-PolicyBei einem Klick auf eine andere Website sendet der Browser die Adresse der vorherigen Seite mit, manchmal mit einem Suchbegriff oder einer Bestellnummer darin.strict-origin-when-cross-origin oder strenger same-origin bzw. no-referrer. Internet.nl wertet nur die strengen Werte als gut.
Permissions-PolicyLegt fest, welche Browserfunktionen Ihre Seite und eingebettete Frames nutzen dürfen, zum Beispiel Kamera, Mikrofon und Standort.camera=(), microphone=(), geolocation=() deaktiviert diese drei. Nutzt Ihre Website eine dieser Funktionen, lassen Sie sie in der Liste weg.
Content-Security-Policy (vollständig)Beschränkt, von welchen Quellen Skripte, Stylesheets und Bilder geladen werden dürfen. Das erschwert eingeschleuste Schadskripte (XSS) erheblich.Individuell für jede Website. Vermeiden Sie unsafe-inline, unsafe-eval und Wildcards.

Einrichten in .htaccess

Fügen Sie diese Zeilen ganz oben in die Datei .htaccess im Ordner public_html Ihrer Domain ein. Erstellen Sie zuvor eine Kopie der Datei.

<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set Content-Security-Policy "frame-ancestors 'self'"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
  # Alleen als je site nog geen HSTS meestuurt (zie hierboven):
  # Header always set Strict-Transport-Security "max-age=31536000"
</IfModule>

Die Kommentarzeile im Code bedeutet: Nur verwenden, wenn Ihre Website noch kein HSTS mitsendet (siehe oben). Fügen Sie includeSubDomains erst hinzu, wenn Sie sicher sind, dass jede Subdomain https hat. Nutzen Sie WordPress, können Sie die Header auch mit einem Plugin einrichten. Wählen Sie ein bekanntes Plugin, das noch aktualisiert wird, und richten Sie jeden Header an einer einzigen Stelle ein: im Plugin oder in .htaccess.

Eine vollständige Content-Security-Policy kann Ihre Website beeinträchtigen: Eine zu strenge Regel blockiert zum Beispiel Ihre Statistiken, Ihre Bezahlschaltfläche, ein eingebettetes Video oder Ihr Chatfenster. Testen Sie sie zuerst mit dem Header Content-Security-Policy-Report-Only. Dieser blockiert nichts, zeigt aber in der Konsole des Browsers an, was blockiert würde. Überlassen Sie dies im Zweifel Ihrem Webentwickler oder beginnen Sie nur mit frame-ancestors.

Auf einem VPS mit nginx oder Caddy

Auf einem VPS verwenden Sie kein DirectAdmin und oft auch keine .htaccess. Sie setzen die Header dann in der Konfiguration Ihres Webservers. Keiner der beiden sendet HSTS oder diese Header von selbst mit.

nginx: im server-Block für Port 443:

add_header Strict-Transport-Security "max-age=31536000" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "frame-ancestors 'self'" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Mit always werden die Header auch bei Fehlerseiten mitgesendet. Achtung: Steht in einem location-Block selbst ein add_header, gelten die Regeln aus dem server-Block für diese Location nicht mehr. Wiederholen Sie sie dort oder legen Sie sie in eine separate Datei, die Sie mit include überall einbinden. Testen Sie die Konfiguration mit nginx -t und laden Sie sie mit systemctl reload nginx.

Caddy: im Block Ihrer Website in der Caddyfile:

header {
	Strict-Transport-Security "max-age=31536000"
	X-Content-Type-Options "nosniff"
	Content-Security-Policy "frame-ancestors 'self'"
	Referrer-Policy "strict-origin-when-cross-origin"
}

Laden Sie die Änderung mit systemctl reload caddy. Zum Aufbau einer Website mit nginx oder Caddy siehe nginx mit einem Zertifikat von Let's Encrypt und Caddy: eine Website mit automatischem https in der VPS-Anleitung.

Testen

  • Internet.nl: Geben Sie Ihre Domain beim Website-Test auf internet.nl ein.
  • Ihr Browser: Öffnen Sie Ihre Website, drücken Sie F12 (oder wählen Sie Untersuchen), wechseln Sie zum Tab Netzwerk, laden Sie die Seite neu und klicken Sie auf die erste Anfrage. Unter Antwort-Header (Response Headers) sehen Sie alles, was Ihr Server mitsendet.
  • Die Kommandozeile: curl -sI https://ihre-domain.de/ zeigt die Header an.

Prüfen Sie nach jeder Änderung, ob Ihre Website, Formulare und Bezahlseite noch funktionieren. Halten Sie außerdem Ihr CMS, Ihre Plugins und Themes aktuell. Siehe wp-login.php von WordPress absichern.

Weiterführende Informationen

Möchten Sie mehr erfahren? Besuchen Sie den kostenlosen Kurs Sicher online für Unternehmer, Lektion 4.2 Ihre Website: https, HSTS und Sicherheitsheader, oder den kostenlosen WordPress-Kurs, Lektion 7.4 Die Website absichern: Berechtigungen, Header und Sicherheits-Plugins.

War dieser Artikel hilfreich?

← Zurück zu DirectAdmin und WebOké-Control-Panel

Einen Moment bitte…

Richten Sie Ihre Domains ein

Legen Sie für jede Domain die Nameserver, die Verknüpfung mit Ihrem Hosting und den künftigen Inhaber fest.

Ihre Domains werden geladen…