Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: bezpieczne hasla w plikach konfiguracyjnych
Forum PHP.pl > Forum > Przedszkole
art
Witam!

Administrator pewnego serwera zwrocil mi uwage iż w moim skrypcie haslo sluzace do polaczenia z bazą danych mySQL znajdujące się w pliku config.inc.php nie jest zaszyfrowane i ze taka sytuacja jest niedopuszczalna...

tak więc mam plik config.inc.php a w nim przykładowo:
  1. <?php
  2. // server bazy danych z ktorym ma sie łączyć skrypt
  3. // (najczęsciej localhost)
  4. $db_hostname='localhost';
  5.  
  6. // nazwa bazy danych
  7. $db_name='nazwabazy';
  8.  
  9. // login do bazy danych
  10. $db_username='login';
  11.  
  12. // haslo do bazy danych
  13. $db_password='haslo123';
  14. ?>


Podobno zamiast 'haslo123' powinienem w to miejsce wstawic to haslo w formie zakodowanej tak aby osoba przegladajaca pliki na serwerze (np. admin lub 'włamywacz') tego hasla nie zobaczyli...

pierwszy raz sie z czyms takim spotykam i szczerze mowiać zgłupiałem... czy ktoś wie czy wogole coś takiego da sie zrobic ? jesli tak to w jaki sposob?
w3b
ja bym Ci radzil zrobic cos takiego

1. Tworzysz sobie plik conf.db, a w nim:
Kod
SetEnv USER "your user login"
SetEnv PASS "you password"

2. Ustawiasz chmod 600 conf.db
3. W pliku php includujesz ten pliczek np,;
  1. <?php
  2. include('includes/conf.db')
  3. ?>

4.i teraz robisz cos takiego:
  1. <?php
  2. $login = $_SERVER['USER'];
  3. $pass = $_SERVER['PASS'];
  4. ?>


i tez masz bezpiecznie smile.gifsmile.gifsmile.gif

Pozdrawiam
kszychu
Cytat(w3b @ 11.09.2006, 14:18:46 ) *
3. W pliku php includujesz ten pliczek np,;

i pupa zbita, bo apache nie ma prawa do odczytu tego pliku.
@art: nie jest to może najbezpieczniejsze, ale inaczej się nie da. Oczywiście możesz napisać funkcje kodującą i dekodującą i używać kodowanego hasła, ale jak ktoś obejrzy zawartość pliku konfiguracyjnego, to obejrzy też inne pliki i znajdzie funkcję dekodującą.
Zahaszować hasła niestety nie można.
w3b
Racja z rozpedu sie pomylilem zeby odwolac sie do $_SERVER['USER'], nalezy includowac ten plik w httpd.conf , zwracam honor
art
Cytat(kszychu @ 11.09.2006, 14:35:16 ) *
@art: nie jest to może najbezpieczniejsze, ale inaczej się nie da. Oczywiście możesz napisać funkcje kodującą i dekodującą i używać kodowanego hasła, ale jak ktoś obejrzy zawartość pliku konfiguracyjnego, to obejrzy też inne pliki i znajdzie funkcję dekodującą.
Zahaszować hasła niestety nie można.


Dzieki serdeczne... pisanie wlasnej fuknkcji do kodowania/dekodowania faktycznie sensu nie ma... ja ogolnie nie rozumie czemu administrator sie czepil z tego ci widzialem wiekszosc skryptow php przechowuje w ten sposb (w takim config.inc.php jak moj) haslo bez zadnego dodatkowego kodowania...

poradzil mi wygenerowanie hasla w md5 no ale przeciez nie ma funkcji dekodujacej md5 (bo musialbym za kazdym razem zakodowane haslo przed zadaniem zapytania bazie dekodować)

i tak sie zastanawiam czy jestem jakis głupi czy moze ktoś tu głupka ze mnie chce zrobic biggrin.gif...

czy takie przechowywanie hasla do bazy w pliku config.inc.php jest az tak niebezpieczne zeby robic wielki szum w tej sprawie?
kszychu
Cytat(art @ 11.09.2006, 16:02:56 ) *
poradzil mi wygenerowanie hasla w md5 no ale przeciez nie ma funkcji dekodujacej md5 (bo musialbym za kazdym razem zakodowane haslo przed zadaniem zapytania bazie dekodować)

i tak sie zastanawiam czy jestem jakis głupi czy moze ktoś tu głupka ze mnie chce zrobic biggrin.gif...

W tym przypadku to drugie, niestety. md5 jest algorytmem haszującym a nie kodującym i nie ma możliwości odtworzenia pierwotnego tekstu potraktowanego md5. I uprzedzam, proszę mnie nie łapać za słówka i nie pisać o kolizjach, nie mają one tutaj zastosowania.
Cytat(art @ 11.09.2006, 16:02:56 ) *
czy takie przechowywanie hasla do bazy w pliku config.inc.php jest az tak niebezpieczne zeby robic wielki szum w tej sprawie?

Ważne jest, by hasła były w pliku config.inc.php a nie w config.inc.innerozszerzenie. W tym pierwszym przypadku nawet jawne wywołanie tego pliku w przeglądarce skończy się zwróceniem przez apache pustej strony, w drugim zostałby zwrócony cały kod php.
art
No cóż dziekuje serdecznie za wyczerpujace wyjaśnienia, jako że nigdy nie zakładam z góry że wszystko wiem najlepiej, przed przystapieniem do polemiki z wspomnianym administratorem wolałem się upewnić co do słuszności moich przekonań w tym temacie ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.