Im heutigen digitalen Zeitalter sind Websites ständig Angriffen ausgesetzt. Eine gängige Bedrohung ist Clickjacking, bei dem Angreifer unsichtbare Frames auf einer Website einfügen, um die Benutzer zu täuschen und sie dazu zu bringen, unbeabsichtigt Aktionen auf der Seite auszuführen. Eine effektive Methode, um Clickjacking zu verhindern, ist die Verwendung von sicheren HTTP-Headern. In diesem Beitrag werden wir erläutern, wie du durch die korrekte Konfiguration von Security Headers deine Website vor Clickjacking und anderen Bedrohungen schützen kannst.
1. Strict-Transport-Security
HTTP Strict Transport Security (HSTS) ist eine großartige Funktion, um die Implementierung von TLS zu verstärken und den User Agent dazu zu bringen, nur HTTPS-Verbindungen zu verwenden. Dies schützt vor Man-in-the-Middle-Angriffen und sichert die Kommunikation zwischen deinem Server und den Besuchern.
Empfohlene Einstellung:
Strict-Transport-Security: max-age=31536000; includeSubDomains
Fehler laut securityheaders.com:
Strict-Transport-Security HTTP Strict Transport Security is an excellent feature to support on your site and strengthens your implementation of TLS by getting the User Agent to enforce the use of HTTPS. Recommended value "Strict-Transport-Security: max-age=31536000; includeSubDomains".
Optionen:
- a) Sucuri: Sucuri bietet eine einfache Möglichkeit, HSTS hinzuzufügen, besonders bei der Verwendung von WordPress. Weitere Informationen findest du im wpbeginner Blog.
- b) Cloudflare: Cloudflare bietet ebenfalls eine einfache Integration von HSTS. Sie stellen entsprechende Einstellungen in ihrer Dashboard-Oberfläche zur Verfügung.
- c) Custom htaccess: Wenn du deine eigene .htaccess Datei bearbeiten möchtest, füge die folgende Zeile hinzu:
In der .htaccess-Datei (Apache Server):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
In NGINX Umgebungen:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
2. Content-Security-Policy
Content Security Policy (CSP) ist ein wirksames Mittel, um deine Website vor Cross-Site-Scripting (XSS)-Angriffen zu schützen. Durch das Whitelisten von vertrauenswürdigen Quellen für Skripte und andere Inhalte kannst du verhindern, dass schadhafter Code geladen wird.
Empfohlene Einstellung:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; object-src 'none';
Fehler laut securityheaders.com:
Content-Security-Policy Content Security Policy is an effective measure to protect your site from XSS attacks. By whitelisting sources of approved content, you can prevent the browser from loading malicious assets.
In der .htaccess-Datei (Apache Server):
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; object-src 'none';"
In NGINX Umgebungen:
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; object-src 'none';";
3. X-Frame-Options
Der X-Frame-Options Header sorgt dafür, dass deine Website nicht in einem Frame auf anderen Seiten angezeigt werden kann. Dies schützt vor Clickjacking-Angriffen, bei denen Benutzer durch unsichtbare Frames manipuliert werden können.
Empfohlene Einstellung:
X-Frame-Options: SAMEORIGIN
Fehler laut securityheaders.com:
X-Frame-Options X-Frame-Options tells the browser whether you want to allow your site to be framed or not. By preventing a browser from framing your site you can defend against attacks like clickjacking. Recommended value "X-Frame-Options: SAMEORIGIN".
In der .htaccess-Datei (Apache Server):
Header always set X-Frame-Options "SAMEORIGIN"
In NGINX Umgebungen:
add_header X-Frame-Options "SAMEORIGIN";
4. X-Content-Type-Options
Der X-Content-Type-Options Header verhindert, dass der Browser den MIME-Typ von Dateien errät. Durch diese Einstellung wird sichergestellt, dass der Browser den deklarativen Content-Type verwendet und keine gefährlichen Inhaltsarten versehentlich interpretiert.
Empfohlene Einstellung:
X-Content-Type-Options: nosniff
Fehler laut securityheaders.com:
X-Content-Type-Options X-Content-Type-Options stops a browser from trying to MIME-sniff the content type and forces it to stick with the declared content-type. The only valid value for this header is "X-Content-Type-Options: nosniff".
In der .htaccess-Datei (Apache Server):
Header always set X-Content-Type-Options "nosniff"
In NGINX Umgebungen:
add_header X-Content-Type-Options "nosniff";
Zusammenfassung: Alle empfohlenen Header-Einstellungen
Hier sind alle Sicherheits-Header, die du in deiner .htaccess oder NGINX-Konfiguration einfügen kannst, um Clickjacking und andere Angriffe zu verhindern:
Für die .htaccess-Datei (Apache Server):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; object-src 'none';" Header always set X-Frame-Options "SAMEORIGIN" Header always set X-Content-Type-Options "nosniff"
Für NGINX Server:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; object-src 'none';"; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff";