WordPress zusätzlich absichern: Rechte, wp-config und .htaccess
Updates, ein starkes Passwort und die Zwei-Faktor-Authentifizierung sind die Grundlage einer sicheren WordPress-Website. Die Härtung (Hardening) kommt noch hinzu: Sie richten die Website so ein, dass eine Sicherheitslücke oder ein übernommenes Konto weniger Schaden anrichten kann. Hier erfahren Sie, um welche Einstellungen es sich handelt und wie Sie diese in Ihrem Hostingpaket vornehmen.
Was auf dem Server bereits geschieht
Einiges ist auf unseren Servern bereits geregelt. xmlrpc.php ist standardmäßig gesperrt (WordPress: Zugriff auf xmlrpc.php funktioniert nicht), gefährliche PHP-Funktionen sind deaktiviert (PHP-Sicherheit: deaktivierte Funktionen), und es laufen eine Firewall für den Webverkehr sowie ein Malware-Scanner. Siehe Web Application Firewall und Imunify360: Ihre Website auf Malware scannen. Die folgenden Schritte führen Sie selbst in Ihrer eigenen Website durch.
Alle Dateien bearbeiten Sie in DirectAdmin mit dem File Manager. Dateien, die mit einem Punkt beginnen, wie .htaccess, sehen Sie erst, wenn Sie versteckte Dateien anzeigen lassen: siehe Versteckte Dateien wie .htaccess anzeigen und bearbeiten. Erstellen Sie von jeder Datei zuerst eine Kopie und legen Sie diese Kopie außerhalb von public_html ab.
1. Keinen Code im Admin-Bereich bearbeiten
Öffnen Sie wp-config.php in domains/example.com/public_html und fügen Sie diese Zeile oberhalb der Zeile „Schluss mit dem Bearbeiten“ (That's all, stop editing!) ein:
define( 'DISALLOW_FILE_EDIT', true );
Die Editoren für Theme- und Plugin-Dateien verschwinden dann aus dem Admin-Bereich. Wer ein Administratorkonto übernimmt, kann dort dann nicht mit wenigen Klicks schädlichen Code in Ihr Theme einschleusen. Das Installieren und Aktualisieren von Plugins funktioniert weiterhin wie gewohnt. Setzen Sie in derselben Datei WP_DEBUG auf false, damit Fehlermeldungen niemals auf dem Bildschirm von Besuchern erscheinen.
2. Kein PHP im Ordner uploads
In wp-content/uploads gehören Bilder und Dokumente, kein PHP. Ein Angreifer, der über eine Lücke eine Datei hochladen kann, versucht genau dort eine PHP-Datei abzulegen und aufzurufen. Erstellen Sie in wp-content/uploads eine Datei .htaccess mit folgendem Inhalt:
<Files *.php> Require all denied </Files>
Prüfen Sie anschließend, ob Ihre Website, Ihre Formulare und Ihre Mediathek noch funktionieren.
3. Keine Verzeichnisauflistung
Befindet sich in einem Ordner keine index.php oder index.html, kann ein Webserver eine Liste aller Dateien anzeigen. Fügen Sie ganz oben in die .htaccess in public_html Folgendes ein:
Options -Indexes
Zum Testen rufen Sie einen Ordner ohne Indexdatei auf, zum Beispiel https://example.com/wp-content/uploads/. Sie sollten dann eine Fehlerseite sehen (403 oder 404), keine Liste.
4. Rechte von Dateien und Ordnern
| Was | Rechte |
|---|---|
| Ordner | 755 |
| Dateien | 644 |
wp-config.php | Strenger: 600 oder 640. Probieren Sie 600 und prüfen Sie, ob Ihre Website noch funktioniert. |
Verwenden Sie niemals 777: Dann darf jeder auf dem Server in diesen Ordner schreiben. Behauptet eine Anleitung, dass dies nötig sei, damit Uploads funktionieren, liegt die Ursache woanders. Rechte anpassen: siehe Rechte von Dateien und Ordnern (chmod).
5. Keine Überbleibsel im Webordner
Alles in public_html ist über das Web abrufbar. Räumen Sie daher auf:
- Kopien von
wp-config.php, wiewp-config.php.bakoderwp-config.old. Diese enthalten Ihr Datenbankpasswort und werden als normaler Text ausgeliefert; - Backups wie
backup.zipoderdatabase.sql; - einen Ordner
.giteines Entwicklers; wp-content/debug.log;- Testdateien wie
info.phpmitphpinfo().
Möchten Sie eine einzelne Datei unerreichbar machen, siehe Dateien über .htaccess sperren.
6. Header und Anmeldung
- Sicherheitsheader teilen dem Browser mit, wie er mit Ihrer Website umgehen soll. Siehe HSTS und Sicherheitsheader für Ihre Website.
- Die Anmeldeseite beschränken Sie mit wp-login.php von WordPress absichern auf Ihre eigene IP-Adresse.
- Zwei-Faktor-Authentifizierung für Administratoren: siehe Zwei-Faktor-Authentifizierung für WordPress einrichten.
Das Verbergen der WordPress-Version ist Aufräumen, keine Sicherheitsmaßnahme: Angriffsprogramme probieren eine Lücke einfach aus. Nur ein Update schließt die Lücke.
Und ein Sicherheits-Plugin?
Ein Sicherheits-Plugin bündelt oft eine Firewall, einen Scanner und einen Anmeldeschutz. Eine Firewall in einem Plugin greift erst, wenn WordPress bereits läuft; die Firewall auf dem Server hält Anfragen früher auf. Ein Plugin ist also eine Ergänzung, vor allem für die Zwei-Faktor-Authentifizierung und die Begrenzung von Anmeldeversuchen. Verwenden Sie höchstens eines: Zwei Sicherheits-Plugins nebeneinander geraten oft in Konflikt.
.htaccess oder wp-config.php legt die gesamte Website lahm. Siehe Fehler 500 oder „kritischer Fehler“ auf Ihrer Website (auch nach einem WordPress-Update).Weiterlesen
- Hardening WordPress (developer.wordpress.org, Englisch)
Mehr erfahren? Besuchen Sie den kostenlosen WordPress-Kurs, Lektion 7.4 Die Website härten: Rechte, Header und Sicherheits-Plugins.
