Ich weiß, dass die Frage How do I secure my database connection credentials?
mehrfach gestellt und beantwortet wurde (z. B. How to secure database passwords in PHP?).Sichern von Datenbankverbindungsinformationen
Eine allgemein akzeptierte Antwort auf diese Frage ist, die Details außerhalb des Webstamms zu speichern. Aber ich bin neugierig, warum das wirklich viel Unterschied macht.
Von dem, was ich verstehe, kann eine Person nicht die Quelle der PHP-Datei über HTTP herunterladen (es sei denn, Ihr Web-Server ist nicht richtig konfiguriert, aber Sie würden sofort darüber wissen). Daher werden Sie die Anmeldeinformationen nur sehen können, wenn Sie Zugriff auf die Quelle der PHP-Datei haben. Korrigiere mich, wenn ich falsch liege, aber bedeutet das nicht grundsätzlich, dass du einen Shell-Zugriff benötigst? Und wenn Sie einen Shell-Zugang haben, können Sie nicht sowieso einfach zur Datei außerhalb des Web-Root gelangen?
Wenn die Antwort auf diese Frage ist, dass die Include-Datei spezielle Berechtigungen haben kann, die niemandem außer dem Webserver-Benutzer erlauben, es zu lesen, dann (kann ich Shell-Zugriff haben), konnte ich nicht einfach schreiben (oder modifizieren) irgendeine PHP-Datei, um nur diese Anmeldeinformationen auszusenden?
Also die Frage ist, macht es wirklich machen einen Unterschied, ob Sie die Anmeldeinformationen direkt im PHP-Skript vs. in einer Datei außerhalb des Web-Root speichern?
Ja das ist tatsächlich einmal mit Facebook passiert! http://techcrunch.com/2007/08/11/facebook-source-code-leaked/ – fire
Oder verhindern Sie diesen Fehler: http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012- 1823/ – Tchoupi
@Dev Die Frage war: * Warum sollten wir DB-Berechtigungsnachweise außerhalb der Webroot speichern? *. Dies beantwortet die Frage. – Tchoupi