Um die Sicherheit von WordPress-Websites schon auf Serverebene zu beginnen, ist die Datei .htaccess eines der wirksamsten Werkzeuge. Sie filtert Anfragen, bevor sie WordPress erreichen.
Sie können die folgenden Codeschnipsel ganz oben in Ihre .htaccess-Datei einfügen oder direkt über der Zeile # BEGIN WordPress. Wichtig: Sichern Sie die vorhandene Datei, bevor Sie Änderungen vornehmen.
1. Zugriff auf sensible Dateien sperren
Der erste Schritt sollte sein, den Zugriff von außen auf die Kerndateien von WordPress vollständig zu sperren.
-
Schutz für wp-config.php: Schützt die Datenbank-Zugangsdaten.
-
Fehlerprotokolle und Kerndateien:
.htaccess: verbirgt die Datei selbst und die Fehlerprotokolle.
# Schutz für wp-config.php
<Files wp-config.php>
order allow,deny
deny from all
</Files>
# Schutz für .htaccess
<Files .htaccess>
order allow,deny
deny from all
</Files>
2. Verzeichnisauflistung deaktivieren
Verhindert, dass Angreifer die Ordnerstruktur Ihrer Website sehen und erkennen, welche Plugins Sie nutzen.
# Verzeichnisauflistung deaktivieren
Options -Indexes
3. PHP-Ausführung einschränken (Uploads-Ordner)
Eine der häufigsten Angriffsmethoden ist es, eine schädliche PHP-Datei in den Ordner wp-content/uploads hochzuladen und auszuführen. Wenn Sie den folgenden Code nur in wp-content/uploads/ und dort in eine neue .htaccess-Datei einfügen, werden in diesem Ordner keine PHP-Dateien ausgeführt.
<Files *.php>
deny from all
</Files>
4. XML-RPC-Zugriff deaktivieren
Wenn Sie kein Plugin wie Jetpack und keine mobile App nutzen, sollten Sie XML-RPC deaktivieren, um Brute-Force-Angriffe über dieses Protokoll zu blockieren.
# XML-RPC blockieren
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
5. Autoren-Scans blockieren
Angreifer versuchen oft, Benutzernamen mit Abfragen wie ?author=1 herauszufinden. So blockieren Sie das:
# Benutzernamen-Scans stoppen
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
6. Zusätzliche Sicherheits-Header
Mit diesen Headern ergreifen Sie Sicherheitsmaßnahmen auf Browserebene:
<IfModule mod_headers.c>
# Schutz vor XSS-Angriffen
Header set X-XSS-Protection "1; mode=block"
# Schutz vor Clickjacking
Header set X-Frame-Options "SAMEORIGIN"
# MIME-Typ festlegen
Header set X-Content-Type-Options "nosniff"
</IfModule>
Darauf sollten Sie achten:
-
Einsatz einer WAF: Wenn Sie serverseitige Software wie ModSecurity nutzen (besonders im „fast“-Modus), können manche
.htaccess-Regeln kollidieren. Wenn nach dem Einfügen dieser Codes der Fehler 500 Internal Server Error erscheint, machen Sie den zuletzt eingefügten Teil rückgängig und testen Sie erneut. -
Plugins: Plugins wie Wordfence oder iThemes Security fügen die meisten dieser Regeln automatisch hinzu. Achten Sie darauf, dass nichts doppelt eingetragen wird.
