2011-02-09 6 views

Odpowiedz

13

Łatwy i bezpieczny sposób — jeśli zrobisz to dobrze — jest z plikiem konfiguracyjnym. Ciąg połączenia MySQL DBI/DBD będzie wyglądać –

dbi:mysql:my_dbname;mysql_read_default_file=/NON-WEB/path/to/.my.cnf 

– i będzie przechodzić żadnego użytkownika lub hasła do połączenia zasilania DBI.

Plik .my.cnf będzie mieć hasło. Sposobów, jak utrzymać ten bezpieczny obejmują –

  • Plik jest tylko czytelny przez webuser.
  • Plik znajduje się poza katalogiem głównym; odwiedzenie adresu URL nie może go dosięgnąć.
  • Plik konfiguracyjny zawiera minimum do podłączenia, prawdopodobnie nie potrzebuje na przykład nazwy użytkownika.
  • Upewnij się, że w aplikacji nie ma żadnych exploitów, które mogłyby pozwolić na przeglądanie systemu plików.
  • mysql Konto webuser za ograniczył przywileje: brak dotacji, nie tworzyć | stoły drop, itp, itd.
-1

prostu nie ma sposobu, aby bezpiecznie przechowywaćnazwa użytkownika/hasło. Ponieważ na końcu twój skrypt zawsze musi być w stanie uzyskać dane, każdy inny mógłby pójść tą samą drogą.

Jeśli przechowujesz dane zaszyfrowane, musisz przekazać skryptowi klucz do odszyfrowania. Więc jeśli ktoś czyta scenariusz, dostaje klucz. Jednak w przypadku środowiska CGI skrypt musi być zawsze czytelny przez serwer WWW.

Jeśli nie korzystasz z CGI-Environment lub istnieje kilka rzeczy suExec, możesz uzyskać to ograniczenie, ustawiając prawa dostępu skryptu/pliku konfiguracyjnego, tak aby nikt inny niż wykonujący je użytkownik nie mógł odczytać plików.

Jest to bezpieczne, dopóki nie pojawi się jakiś administrator i chce się dowiedzieć, co tam jest, lub ktoś włamie się na twoje konto.

+2

The hasła „najlepszy sposób” do przechowywania informacji użytkownika. I chociaż nie ma w 100% "bezpiecznych" sposobów przechowywania tego, niektóre sposoby są lepsze od innych. Trzymanie tych informacji oddzielnie od kodu jest dobrą praktyką z punktu widzenia bezpieczeństwa i konserwacji. – Rob

Powiązane problemy