Obwohl wordpress eine tolle blog-Software ist, liegen hier alle Dateien innerhalb vom öffentlich Zugänglichen Web-Verzeichnis. Die sensitivsten Daten, wie Benutzername und Passwort der Datenabnk liegen dabei in der Datei: wp-config.php. Zwar kann man diese Datei unter normalen Umständen nicht auslesen, aber bereits eine möglicherweise unentdeckte Server-Misskonfiguration kann den php interpreter deaktivieren und die Daten können im Klartext abgerufen werden.
Aus Sicherheitsgründen verschiebt man Konfigurationsdateien deshalb ausserhalb dem „öffentlichen“ Webverzeichnis, also dem sog. DOCUMENT_ROOT in ein Verzeichnis auf welches der Webserver nicht zugreifen kann.
WordPress hat dabei eine versteckte Möglichkeit eingebaut, die nur wenige kennen: Da wordpress automatisch auch im darüber liegenden Verzeichnis nach der Datei wp-config.php sucht, wenn es diese nicht im aktuellen findet, reicht es die Datei einfach eine ebene höher zu verschieben.
Beispiel:
- Die Domain: meinblog.example.org zeigt auf das Verzeichnis: /srw/www/example.org/meinblog/public_html/
- Die WordPress-Dateien liegen in: /srw/www/example.org/meinblog/public_html/ und demanach die wp-config.php in: /srw/www/example.org/meinblog/public_html/wp-config.php
Nun reicht es, die Datei wp-config.php in das Verzeichnis: /srw/www/example.org/meinblog/ zu verschieben. Die Datei liegt dann unter /srw/www/example.org/meinblog/wp-config.php und schon hat man seine Webseite ein bisschen mehr abgesichert. 🙂
Einige Beispiele warum man diese machen sollte stehen im stackexchange.com thread: Is moving wp-config outside the web root really beneficial?