Uw webroot, dat is $_SERVER['DOCUMENT_ROOT']
in PHP, is de map op je bestandssysteem waar je webserver (in dit geval Apache) naar verwijst voor een bepaalde host.
Als u deze code bijvoorbeeld in uw index.php-bestand plaatst en uw domeinnaam (of subdomeinnaam) bezoekt, wordt u uw webroot verteld.
<?php
header("Content-Type: text/plain;charset=UTF-8");
die($_SERVER['DOCUMENT_ROOT']);
?>
Het zou iets moeten zeggen als, /home/some_user/public_html
of /var/www
. In dit geval wilt u een pad maken dat niet in deze map staat.
Bijvoorbeeld:/home/some_user/config
of /var/webconfig
.
U doet NIET wil het opslaan in /home/some_user/public_html/config
(let op de public_html) of /var/www/webconfig
(merk op dat dit een submap is van /var/www
)
Het idee van het opslaan van gegevens buiten uw webroot is dat een aanvaller niet kan navigeren naar http://yoursite.com/config/mysql.txt
en uw wachtwoorden te verkrijgen. LFI en directory traversal-aanvallen vallen niet onder dit initiatief.
Je moet ook geen gevoelige informatie (databasegegevens, coderingssleutels, enz.) controleren in versiebeheer. Ooit.
Hoe toegang krijgen vanuit PHP?
Dat hangt ervan af hoe uw configuratie is gecodeerd.
<?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';
?>