Mysql
 sql >> Base de données >  >> RDS >> Mysql

Où stocker les identifiants MySQL dans les scripts PHP ?

Votre racine Web, qui est $_SERVER['DOCUMENT_ROOT'] en PHP, est le dossier de votre système de fichiers vers lequel votre serveur Web (dans ce cas, Apache) pointe pour un hôte particulier.

Par exemple, si vous mettez ce code dans votre fichier index.php et visitez votre nom de domaine (ou nom de sous-domaine), il vous indiquera votre racine Web.

    <?php
    header("Content-Type: text/plain;charset=UTF-8");
    die($_SERVER['DOCUMENT_ROOT']);
    ?>

Il devrait dire quelque chose comme, /home/some_user/public_html ou /var/www . Dans ce cas, vous voulez créer un chemin qui n'est pas à l'intérieur de ce répertoire.

Par exemple :/home/some_user/config ou /var/webconfig .

Vous ne faites PAS voulez le stocker dans /home/some_user/public_html/config (notez le public_html) ou /var/www/webconfig (notez qu'il s'agit d'un sous-dossier de /var/www )

L'idée de stocker des données en dehors de votre racine Web est qu'un attaquant ne peut pas accéder à http://yoursite.com/config/mysql.txt et obtenir vos mots de passe. Les attaques LFI et de traversée de répertoire ne font pas partie du champ d'application de cette initiative.

Vous ne devez pas non plus vérifier les informations sensibles (identifiants de base de données, clés de chiffrement, etc.) dans le contrôle de version. Jamais.

Comment y accéder depuis PHP ?

Cela dépend de la façon dont votre configuration est encodée.

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