Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Gdzie przechowywać dane uwierzytelniające MySQL w skryptach PHP?

Twój katalog internetowy, czyli $_SERVER['DOCUMENT_ROOT'] w PHP to folder w systemie plików, na który wskazuje serwer WWW (w tym przypadku Apache) dla konkretnego hosta.

Na przykład, jeśli umieścisz ten kod w pliku index.php i odwiedzisz nazwę swojej domeny (lub nazwę subdomeny), zostaniesz poinformowany o Twoim katalogu głównym.

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

Powinien powiedzieć coś w stylu /home/some_user/public_html lub /var/www . W takim przypadku chcesz utworzyć ścieżkę, która nie znajduje się w tym katalogu.

Na przykład:/home/some_user/config lub /var/webconfig .

NIE chcesz go przechowywać w /home/some_user/public_html/config (zwróć uwagę na public_html) lub /var/www/webconfig (zauważ, że jest to podfolder /var/www )

Pomysł przechowywania danych poza głównym katalogiem sieci polega na tym, że atakujący nie może przejść do http://yoursite.com/config/mysql.txt i uzyskaj swoje hasła. Ataki LFI i Directory Traversal nie są objęte zakresem tej inicjatywy.

Nie należy również sprawdzać żadnych poufnych informacji (poświadczeń bazy danych, kluczy szyfrowania itp.) do kontroli wersji. Kiedykolwiek.

Jak uzyskać do nich dostęp z PHP?

To zależy od tego, jak zakodowana jest twoja konfiguracja.

<?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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Eksportuj bazę danych MySQL/MariaDB

  2. Format daty MySQL DD/MM/RRRR zapytanie wybierające?

  3. Nie można wykonać procedury składowanej MySQL z Javy

  4. CRUD dla MySQL i PHP

  5. Jak napisać wiele kolumn w klauzuli za pomocą sqlalchemy