Mysql
 sql >> Database >  >> RDS >> Mysql

Dove archiviare le credenziali MySQL negli script PHP?

La tua web root, che è $_SERVER['DOCUMENT_ROOT'] in PHP, è la cartella sul tuo filesystem a cui punta il tuo server web (in questo caso, Apache) per un particolare host.

Ad esempio, se inserisci questo codice nel tuo file index.php e visiti il ​​tuo nome di dominio (o nome di sottodominio), ti indicherà la tua radice web.

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

Dovrebbe dire qualcosa come /home/some_user/public_html o /var/www . In questo caso, vuoi creare un percorso che non sia all'interno di questa directory.

Ad esempio:/home/some_user/config o /var/webconfig .

NON vuoi salvarlo in /home/some_user/public_html/config (notare public_html) o /var/www/webconfig (nota che questa è una sottocartella di /var/www )

L'idea di memorizzare i dati al di fuori della tua radice web è che un utente malintenzionato non può accedere a http://yoursite.com/config/mysql.txt e ottieni le tue password. Gli attacchi LFI e directory traversal non rientrano nell'ambito di questa iniziativa.

Inoltre, non dovresti controllare alcuna informazione sensibile (credenziali del database, chiavi di crittografia, ecc.) nel controllo della versione. Mai.

Come accedervi da PHP?

Dipende da come è codificata la tua configurazione.

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