Anständige Sicherheit ist manchmal gar nicht so weit entfernt. In unserem WordPress Security Guide haben wir bereits einige elementare Schritte vorgestellt, mit denen die Sicherheit einer WordPress Installation erheblich verbessert werden kann. Einer dieser Schritte beschreibt, wie man das WordPress Verzeichnis wp-content umbenennen und damit erheblich gegen potentielle Hackerangriffe und Schadsoftware absichern kann. Wie genau die Umbenennung von wp-content funktioniert und welchen Effekt die ganze Aktion hat, schauen wir uns jetzt im Detail an.
Aufgabe und Funktion des Verzeichnis wp-content
Das WordPress-Verzeichnis wp-content liegt eine Ebene unterhalb der WordPress-Root („Wurzel“) und ist für die gesamte Organisation jeglicher Uploads, Plugins und Themes zuständig.
Aufgrund dieser durchaus wichtigen Eigenschaft ist es ein beliebtes Ziel vieler Exploits und Hacker-Angriffe auf WordPress-Webseiten, zumal das directory in nur wenigen Fällen ausreichend gegen genau diese recht simplen aber durchaus wirkungsvollen Angriffe abgesichert ist. Durch die Umbenennung entziehen wir vorgefertigten Exploits-Scripts die Angriffsfläche.
Diese Skripte versuchen weitestgehend automatisiert, gängige oder bekannte Sicherheitslücken in Plugins, Themes und den Verzeichnisrechten einer WordPress-Installation auszunutzen, um Schadcode oder anderweitigen Unfug in das Dateisystem einzuschleusen. Das funktioniert natürlich nur, wenn das Skript auch einen regulären Pfad der WordPress-Installation ansteuern kann – in unserem Fall betrifft das alle Pfade, die irgendwie mit …/wp-content/… in Zusammenhang stehen.
Benennen wir den mittleren Teil nun einfach um, laufen sämtliche Skripte ins Leere, weil schlichtweg der Exploit-Pfad des Skriptes nicht mehr korrekt ist. Eine wirkungsvolle Methode, mit der zumindest automatisiertes Skripting wirkungsvoll unterbunden werden kann.
Wie wir das Verzeichnis wp-content umbenennen können, zeige ich in den nachfolgenden Schritten.
wp-content umbenennen und wp-config anpassen
Dazu erstellen wir zunächst eine PHP Datei via FTP-Filebrowser in unserem WordPress-Hauptverzeichnis.
Also z.B. htdocs/webspace/webseite.com/Wordpress/kreativername.php, je nach Aufbau des Webservers. Wichtig ist nur, dass die Datei im Hauptverzeichnis von WordPress liegt. Diesen durchaus kreativen Namen kannst du natürlich auch noch ein kleines Stückchen kreativer gestalten.
Diese kreative Datei benötigen wir, um den absoluten Pfad zu unserer WordPress Installation herauszufinden, der je nach Webserver und Ordnernamen unterschiedlich sein kann.
Jene kreativ benannte Datei füllst du mit dem folgenden (nicht kreativen) Inhalt:
<?php $pfad = getcwd(); echo $pfad; ?>
Nun navigierst du via Browser zu der Datei in deinem Hauptverzeichnis, indem du die Adresse deiner WordPress-Installation angibst und die Datei an das Ende der URL anhängst (z.B. domain.com/kreativername.php).
Das Ergebnis könnte dann in etwa wie folgt aussehen:
/www/htdocs/webspace123/website.com/
Mit diesen sensiblen Informationen bewaffnet begeben wir uns in den nächsten Schritt. Öffne die wp-config.php (ggf. musst du die Schreibrechte anpassen, wenn ein Beschreiben der Datei nicht möglich ist) und füge am Ende der Default-Definitionen folgenden Code hinzu (wichtig: achte ggf. auf die Anpassung der Top-Level-Domain und des verwendeten HTTP-Protokolls, falls deine Webseite SSL Verschlüsselung nutzt, also dann https://):
define('WP_CONTENT_DIR', '/www/htdocs/webspace123/website.tld/neuernamewpcontent'); define('WP_CONTENT_URL', 'http://www.website.tld/neuernamewpcontent');
Damit du wieder auf dein Front- und Backend zugreifen kannst, müssen nun noch drei Schritte bewältigt werden:
- Das wp-content Folder muss via FTP Client entsprechend des eben festgelegten Namens umbenannt werden (einfach über einen Rechtsklick auf das Verzeichnis)
- Alle bisherigen Einträge, die das alte wp-content Verzeichnis nutzen (z.B. div. Uploads wie Bilder oder aber auch Plugins) müssen angepasst werden. Heißt im Klartext: Jegliche Einträge, die „wp-content“ in irgendwo der aktiven Datenbank beinhalten (als Teil der Upload-URL), müssen auf den neuen Verzeichnisnamen angepasst werden. Andernfalls können diese Ressourcen nicht mehr gefunden werden und verursachen eine Menge an 404-Fehlern.
- Wichtig: Die eben erstellte PHP Datei nach der Nutzung wieder vom Webserver löschen!
wp-content umbenennen und Datenbank mit Search & Replace anpassen
Letzteres erledigen wir mit einem mächtigen Tool, das in keinem Repertoire eines erfolgreichen WordPress Fachanwenders fehlen darf. Zunächst besuchst du die Webseite von interconnect/it und lädst das Search & Replace Tool für WordPress herunter.
Wichtiger Hinweis: Das S&R Tool ist ein Werkzeug, das direkt in deiner Datenbank arbeitet und „am offenen Herzen“ operiert. Bei unsachgemäßer Anwendung kann das Tool den Shutdown deiner gesamten Webseite zur Folge haben und so weitere Schäden verursachen. Beachte also zwingend die Anwendungsinformationen von interconnect/it. Sollte dein technisches Verständnis nicht ausreichen, frage entsprechend ausgebildete Personen um Hilfe oder nutze unseren WordPress Service.
Weiter im Programm. Nach dem Download entpackst du das ZIP und gibst dem Ordner einen willkürlichen Namen, z.B. den Vornamen deiner Schwiegermutter. Ein nicht-generischer Name ist besonders wichtig, weil das Tool falsch angewendet ein absolut folgenschweres Sicherheitsrisiko für deine Webseite darstellt. Es muss nicht die Schwiegermutter sein, die Großmutter tut’s natürlich auch.
Nach der Umbenennung lädst du den gesamten Ordner in das Hauptverzeichnis der WordPress Installation hoch. Spätestens jetzt solltest du noch einmal sicherstellen, dass du ein aktuelles Backup deiner MySQL-Datenbank hast, das im Worst Case eine zerstörte Datenbank wiederherstellen kann. Nach dem Upload navigierst du via Browser zu dem directory, das du gerade hochgeladen hast.
Das könnte in etwa wie folgt aussehen: www.website.com/searchreplacefoldername. Der folgende Screenshot zeigt die Benutzeroberfläche des Tools:
In der GUI wird im „replace“ Feld der Name des alten directorys angegeben, also wp-content. Bei „with“ wird der neue Name des Verzeichnisses angegeben, das du kurz zuvor umbenannt hast. Wenn das Tool richtig installiert wurde, holt es sich die Datenbankinformationen selbständig aus der Installation heraus. Vorsichtshalber sollten diese Informationen aber noch einmal kontrolliert werden, damit hier nichts in die Hose geht.
Die Option „regex“ muss nicht aktiviert werden, solange keine regulären Ausdrücke für die Selektion von Datenbankinhalten verwendet werden. Die „all tables“ Option sollte allerdings aktiv sein, wenn es um Änderungen in Hauptverzeichnissen wie wp-content geht.
Nach dem Setup sollte ein kurzer „dry run“ ausgeführt werden, der nur alle potentiellen Änderungen in den Tabellen auflistet. Wenn hier alles glatt läuft, kann der „live run“ gestartet werden, der schließlich alle Transaktionen in der Datenbank verändert und persistent macht. Nach dem erfolgreichen Abschluss des Prozesses sollte die „delete me“ Funktion genutzt werden, um das S&R directory vom Webspace zu entfernen. Etwaige Dateireste können manuell via FTP entfernt werden.
Nun sollte die WordPress Installation wieder ohne Probleme laufen und alle Uploads, Bilder und Co. unter der neuen wp-content Adresse erreichbar sein. Du kannst also ohne große Schwierigkeiten wp-content umbenennen und eliminierst so wieder ein zusätzliches Sicherheitsrisiko für WordPress.
Wenn du Fragen oder Probleme bei der Umbenennung hast, kannst du dich gerne an unseren WordPress-Support wenden.