Ihr Webstammverzeichnis, das ist $_SERVER['DOCUMENT_ROOT']
in PHP ist der Ordner in Ihrem Dateisystem, auf den Ihr Webserver (in diesem Fall Apache) für einen bestimmten Host verweist.
Wenn Sie beispielsweise diesen Code in Ihre index.php-Datei einfügen und Ihren Domainnamen (oder Subdomainnamen) besuchen, wird Ihnen Ihr Webstamm mitgeteilt.
<?php
header("Content-Type: text/plain;charset=UTF-8");
die($_SERVER['DOCUMENT_ROOT']);
?>
Es sollte so etwas wie /home/some_user/public_html
lauten oder /var/www
. In diesem Fall möchten Sie einen Pfad erstellen, der sich nicht in diesem Verzeichnis befindet.
Zum Beispiel:/home/some_user/config
oder /var/webconfig
.
Das tun Sie NICHT Sie möchten es in /home/some_user/public_html/config
speichern (beachten Sie public_html) oder /var/www/webconfig
(Beachten Sie, dass dies ein Unterordner von /var/www
ist )
Die Idee, Daten außerhalb Ihres Webstamms zu speichern, besteht darin, dass ein Angreifer nicht zu http://yoursite.com/config/mysql.txt
navigieren kann und erhalten Sie Ihre Passwörter. LFI- und Directory-Traversal-Angriffe fallen nicht in den Anwendungsbereich dieser Initiative.
Sie sollten auch keine vertraulichen Informationen (Datenbankanmeldeinformationen, Verschlüsselungsschlüssel usw.) in die Versionskontrolle einchecken. Immer.
Wie greife ich von PHP darauf zu?
Das hängt davon ab, wie Ihre Konfiguration codiert ist.
<?php
$config = parse_ini_file('/home/some_user/config/mysql.ini');
// OR
$config = json_decode('/home/some_user/config/mysql.json');
// OR
require_once '/home/some_user/config/mysql_config.php';
?>