Sicherung von wp-config.php ist öffentlich zugänglich

Was es ist

Im Webroot Ihrer WordPress-Installation ist eine Datei wie wp-config.php.bak, wp-config.php.old, wp-config.txt oder wp-config.php~ öffentlich erreichbar. Das entsteht am häufigsten so:

Warum das ein Problem ist

Der entscheidende Unterschied zur normalen wp-config.php: PHP-Dateien führt Apache/nginx aus — sie liefern HTML-Output, nicht den Code. Eine Datei mit der Endung .bak oder .txt sendet der Server jedoch als reinen Text. Ein Angreifer öffnet https://example.de/wp-config.php.bak und erhält:

Mit den Schlüsseln signiert der Angreifer die Cookies des Admins. Mit der Datenbank räumt er den Inhalt ab und setzt das Passwort. In der Regel ist damit alles vorbei.

Wie man es behebt

Schritt 1 — alle .bak / .old / .txt Sicherungen löschen

cd /var/www/example.de
ls -la wp-config*
# finden und löschen
rm wp-config.php.bak wp-config.php.old wp-config.php~ wp-config.txt

Durchsuchen Sie auch das gesamte Webroot:

find . -type f \( -name "*.bak" -o -name "*.old" -o -name "*~" \) -ls

Schritt 2 — das rotieren, was in der .bak-Datei stand

Gehen Sie davon aus, dass jemand die Datei heruntergeladen hat. Tauschen Sie aus:

  1. Das Datenbank-Passwort. Aktualisieren Sie nach der Änderung auch wp-config.php: define('DB_PASSWORD', 'neuespasswort');.
  2. Die WordPress Security Keys (AUTH_KEY usw.). Neue erzeugen Sie unter api.wordpress.org/secret-key/1.1/salt/ und ersetzen sie. Diese Änderung meldet alle aktiven Benutzer ab — das ist in Ordnung.

Schritt 3 — .bak / .old Muster auf dem Webserver blockieren

Damit eine weitere versehentlich erstellte Sicherung nicht nach außen gelangt:

nginx:

location ~* \.(bak|old|backup|orig|swp|save|~)$ {
    deny all;
    return 404;
}

Apache (.htaccess):

<FilesMatch "\.(bak|old|backup|orig|swp|save|~)$">
    Require all denied
</FilesMatch>

Schritt 4 — richtig sichern

Eine Sicherung der wp-config.php gehört außerhalb des Webroot, in eine Versionsverwaltung (privates Git, S3-Bucket mit SSE, dediziertes Backup-Hosting). Niemals neben die aktive Version.

Referenzen