Versteckt PHP-Dateien außerhalb WWW für Sicherheit

8

Ich habe ein "globabVars.php" -Doc in meinem eigenen kleinen Framework, das Datenbankverbindungs-Vars usw. enthält. Ich denke, dass es nett wäre, außerhalb der Web-Verzeichnisse zu speichern, um es ein wenig sicherer zu halten . Aber dann dachte ich, ist es wirklich viel sicherer? Ich meine, wenn jemand in der Lage wäre, meine .php-Dateien als Ganzes anzusehen (ohne dass der Server sie verarbeitet), wären sie INNERHALB meines Servers und würden trotzdem alle meine Dateien ansehen ...

Gedanken?

    
Howard Zoopaloopa 06.08.2010, 02:57
quelle

3 Antworten

5

Wenn Sie eine Konfigurationsdatei außerhalb des Webstammverzeichnisses verschieben, kann diese Datei daran gehindert werden, durchzusickern, wenn Sie versehentlich Apache falsch konfigurieren. Wenn Sie zum Beispiel Apache mod_php entfernen, werden alle .php-Dateien als Textdateien behandelt. Ich habe gesehen, dass Konfigurationsdateien aus diesem Grund außerhalb des Webstamms auf Produktivsystemen verschoben wurden, und es hat verhindert, dass die Datei durchgesickert ist! (Ein Admin hat die Konfiguration während eines Updates vereist, Doah!). Obwohl das nicht oft passiert.

Wenn ein Angreifer den Pfad einer dieser Funktionen steuern kann: file_get_contents() , fopen() , readfile() oder fgets() , dann kann er jede Datei auf Ihrem System lesen. Sie müssen sich auch um die SQL-Injektion kümmern. Zum Beispiel kann diese Abfrage unter MySQL verwendet werden, um Dateien zu lesen: select load_file("/etc/passwd") .

Um dieses Problem zu beheben, entfernen Sie die FILE -Rechte von Ihrem von PHP verwendeten MySQL-Benutzerkonto. Führen Sie auch chmod 500 -R /path/to/web/root aus. Die letzten 2 Nullen verhindern, dass ein anderes Konto auf die Dateien zugreift. Sie sollten es auch mit einem chown www-data -R /path/to/web/root weiterverfolgen, wobei www-data das Benutzerkonto ist, mit dem php ausgeführt wird. Sie können dies herausfinden, indem Sie <?php system('whoami');?> ausführen.

    
rook 06.08.2010, 03:48
quelle
2

Es bedeutet, dass niemand standardmäßig über eine URL darauf zugreifen kann.

Sie können mit .htaccess ausblenden, wenn in Ihrer Docroot ist, aber das Speichern über der Docroot ist nur ein bisschen sicherer.

Sie können es über PHP lesen lassen, wenn Ihre Anwendung anfällig für Angriffe durch Verzeichnisdurchsuchungen ist.

    
alex 06.08.2010 03:00
quelle
2

Ja, du hast Recht. Es gibt einen sehr kleinen Unterschied.

    
Your Common Sense 06.08.2010 04:12
quelle

Tags und Links