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

Hvor gemmer man MySQL-legitimationsoplysninger i PHP-scripts?

Din webrod, som er $_SERVER['DOCUMENT_ROOT'] i PHP, er mappen på dit filsystem, som din webserver (i dette tilfælde Apache) peger på for en bestemt vært.

Hvis du f.eks. indsætter denne kode i din index.php-fil og besøger dit domænenavn (eller underdomænenavn), vil den fortælle dig din webrod.

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

Det burde sige noget som, /home/some_user/public_html eller /var/www . I dette tilfælde vil du oprette en sti, der ikke er inde i denne mappe.

For eksempel:/home/some_user/config eller /var/webconfig .

Det gør du IKKE ønsker at gemme det i /home/some_user/public_html/config (læg mærke til public_html) eller /var/www/webconfig (bemærk, at dette er en undermappe til /var/www )

Ideen med at gemme data uden for din webrod er, at en angriber ikke kan navigere til http://yoursite.com/config/mysql.txt og få dine adgangskoder. LFI- og biblioteksangreb er ikke omfattet af dette initiativ.

Du bør heller ikke kontrollere nogen følsomme oplysninger (databaselegitimationsoplysninger, krypteringsnøgler osv.) i versionskontrol. nogensinde.

Hvordan får man adgang til dem fra PHP?

Det afhænger af, hvordan din konfiguration er kodet.

<?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. Kan Mysql opdele en kolonne?

  2. Hvordan udfører jeg en IF...THEN i en SQL SELECT?

  3. Serverens tidszoneværdi 'AEST' er ikke genkendt eller repræsenterer mere end én tidszone

  4. Findes der i Oracle en funktion, der beregner forskellen mellem to datoer?