Din webbrot, som är $_SERVER['DOCUMENT_ROOT']
i PHP, är den mapp på ditt filsystem som din webbserver (i det här fallet Apache) pekar på för en viss värd.
Om du till exempel lägger in den här koden i din index.php-fil och besöker ditt domännamn (eller underdomännamn), kommer den att berätta om din webbrot.
<?php
header("Content-Type: text/plain;charset=UTF-8");
die($_SERVER['DOCUMENT_ROOT']);
?>
Det borde stå något i stil med /home/some_user/public_html
eller /var/www
. I det här fallet vill du skapa en sökväg som inte finns i den här katalogen.
Till exempel:/home/some_user/config
eller /var/webconfig
.
Det gör du INTE vill lagra den i /home/some_user/public_html/config
(märk public_html) eller /var/www/webconfig
(notera att detta är en undermapp till /var/www
)
Tanken med att lagra data utanför din webbrot är att en angripare inte kan navigera till http://yoursite.com/config/mysql.txt
och skaffa dina lösenord. LFI- och katalogövergångsattacker är inte inom ramen för detta initiativ.
Du bör inte heller kontrollera någon känslig information (databasuppgifter, krypteringsnycklar, etc.) i versionskontrollen. Någonsin.
Hur får man tillgång till dem från PHP?
Det beror på hur din konfiguration är kodad.
<?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';
?>