Wer eine Webseite mit Datenbankanbindung betreibt kennt ja sicher die "config.php" in der die Zugangsdaten zur Datenbank stehen. Normalerweise ist das auch kein Problem da PHP-Dateien vom Webserver ausgeführt werden und so ihr Inhalt nicht sichtbar ist. Es gibt aber einige Editoren die beim bearbeiten von Dateien Backups anlegen, so wird wenn man die config.php bearbeitet automatisch eine config.bak vom Editor angelegt. Wenn man beim hoch laden der Webseite nicht aufpasst oder seine Webseite direkt auf dem Server bearbeitet kann es passieren das die config.bak auf dem Server landet und so von jedem die Datenbankdaten gesehen werden können da eine .bak Datei vom Webserver nicht ausgeführt sondern in Klartext ausgeliefert wird.
Ich wollte mal wissen wie oft so was vorkommt und habe ein Script geschrieben das erst bei einer Suchmaschine nach einer oft verwendeten Software sucht und dann prüft ob eine Backup-Datei der config.php auf dem Server liegt. Dabei habe ich ca. 800 Seiten geprüft und konnte 7 mal die Zugangsdaten zur Datenbank in Klartext lesen. Von dem Problem sind also knapp 1% der Installationen betroffen. Die betroffenen Seitenbetreiber habe ich natürlich so weit es ging angeschrieben und sie auf das Problem aufmerksam gemacht, teilweise war es aber nicht möglich eine an eine gültige Mail Adresse oder Telefon Nummer der Seitenbetreiber zu kommen.
Das Problem lässt sich recht einfach umgehen indem man folgendes in seine .htaccess einträgt:
<Files "config.*"> Order Allow,Deny Deny from All <Files>
Wenn man jetzt versucht auf eine config.bak zuzugreifen bekommt man vom Webserver eine Fehlermeldung statt den Inhalt der Datei angezeigt.
Kommentare