sql >> Database >  >> RDS >> Mysql

Waar MySQL-inloggegevens opslaan in PHP-scripts?

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';
?>


  1. HikariCP Postgresql-stuurprogramma beweert JDBC-URL niet te accepteren

  2. EXPLAIN en COUNT geven twee verschillende waarden terug

  3. Django:Tafel bestaat niet

  4. Een andere manier om automatische updates van statistieken te bekijken