Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php i mysql, bezpieczne polaczenie (ukrycie hasla)
Forum PHP.pl > Forum > Bazy danych > MySQL
deniol13
Witam, za jakiś czas (do wakacji) wypuszczę swój skrypt forum, podstawowo będzie obsługiwał bazę MySQL ale mniejsza o to.
Chcę jakoś ukryć hasło do połączenia z bazą mysql. Dane połączenia zapisane są w tablicy $config w pliku Config.php i jest to "czysty" tekst, czyli można łatwo odczytać hasło i mam pytanie:
-Czy da się aby hasło było w postaci hash'a np md5 i do połączenia podać go jako hash a serwer sql sam sobie sprawdzi zgodność hasha z pliku z hashem hasła bazy? Coś podobnego jak zabezpieczenie haseł użytkowników.
darko
Prawie dokładnie tak się to powinno zrobić w tym przypadku.
  1. SELECT md5('test')
deniol13
nie chodzi mi o to, jak za pomocą SQL zahashować tekst, tylko jak się połączyć z bazą używając hasha hasła, o ile się tak da
pitu
Cytat(deniol13 @ 28.03.2011, 16:51:17 ) *
nie chodzi mi o to, jak za pomocą SQL zahashować tekst, tylko jak się połączyć z bazą używając hasha hasła, o ile się tak da


Nie da się zahashować hasła użytkownika mysql. Serwer SQL musi rozpoznać hasło, a jak by to miało wyglądać z zahashowanym hasłem?
darko
offtopic.gif
W praktyce sprawa wygląda w ten sposób, że jak masz hasło przysłane przez użytkownika, a hasła przechowujesz w postaci zahaszowanej w bazie (często też solone) to wyciągasz z bazy po podanym loginie do pary zahaszowane hasło, hasło oryginalne haszujesz (i solisz według takiego samego schematu jak to, w bazie) i porównujesz oba hasze, Jeśli są identyczne i tylko wtedy - użytkownik podał poprawne hasło, jeśli nie są - podane hasło jest nieprawidłowe.
//edit
Faktycznie, wybaczcie, zwiesiłem się :] Muszę w trybie pilnym odpocząć. specool.gif
</EOT>
Crozin
@darko: A Ty czytasz w ogóle czego dotyczy dany wątek? Jaki to ma niby związek z tematem?

Nie da się takiego hasła w żaden sposób "zataić". Zresztą jeżeli ktoś uzyska do niego dostęp to i tak będzie już w stanie zrobić właściwie wszystko...
vermis
Cytat(deniol13 @ 28.03.2011, 15:16:50 ) *
-Czy da się aby hasło było w postaci hash'a np md5 i do połączenia podać go jako hash a serwer sql sam sobie sprawdzi zgodność hasha z pliku z hashem hasła bazy?


Nawet jakby dało się przesłać sam hash, to i tak nic nie da. Co za różnica czy przechwycisz hash czy hasło skoro jedno i drugie wystarczyłoby, żeby się zalogować.
melkorm
Cytat
Nie da się takiego hasła w żaden sposób "zataić". Zresztą jeżeli ktoś uzyska do niego dostęp to i tak będzie już w stanie zrobić właściwie wszystko...


Blokada dostępu z zewnątrz + wyłączenie wszelkich PhpMyAdmin'owych tworów powinna skutecznie zabezpieczyć go nawet gdy ktoś posiada hasło do bazy.
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.