Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]zabezpieczenie hasla
Forum PHP.pl > Forum > Przedszkole
laik_PHP
Hej, mam stronę i robię do niej logowanie.

I tu widzę problem bo nie wiem jak zrobić aby hasło użytkownika było odpowiednio zabezpieczone

- jak będę miał pole w bazie danych MySQL o nazwie password i będę w nim trzymał normalnie jako tekst to user raczej by sobie nie życzył tego abym je widział. A widzę je bo mam dostęp do owej bazy, tabeli i pola

- jak je "zahasluje" md5 to chyba będę mógł je odczytać kodem:
  1. echo(md5("to_haslo_zakodowane_md5"));


a nawet jak zabezpieczę jakoś że tego nie odczytam to jak później jak user zapomni hasła to jak je odzyska?

Nie wiem jak to zrobić, pomożecie?
nospor
Cytat
jak je "zahasluje" md5 to chyba będę mógł je odczytać kodem:
ee? Sprawdź, a nie pleciesz głupoty wink.gif

md5 to hash - funkcja jednostronna, nie do odczytania (pomijam kwestie tęczowych tablic.)

Zapoznaj sie z tym tematem:
http://forum.php.pl/index.php?showtopic=44...t=0&start=0

Podsumowując: hasło masz trzymac zahashowane i posolone. Wszystko masz opisane w linku powyżej

Co do "przypomnij haslo" to polega to na tym, ze ty dla usera wysylasz nowo wygenerowane hasło - to jedna z możliwych praktyk.
User nie dostaje już hasła, które miał wcześniej
laik_PHP
Cytat(nospor @ 21.02.2011, 12:31:54 ) *
ee? Sprawdź, a nie pleciesz głupoty wink.gif

md5 to hash - funkcja jednostronna, nie do odczytania (pomijam kwestie tęczowych tablic.)

Zapoznaj sie z tym tematem:
http://forum.php.pl/index.php?showtopic=44...t=0&start=0

Podsumowując: hasło masz trzymac zahashowane i posolone. Wszystko masz opisane w linku powyżej

Co do "przypomnij haslo" to polega to na tym, ze ty dla usera wysylasz nowo wygenerowane hasło - to jedna z możliwych praktyk.
User nie dostaje już hasła, które miał wcześniej


co do md5 napisałem że MOŻE odczytam - pytanie nie twierdzenie smile.gif
przeczytam ART, dzięki.
A "przypomnij haslo" to chyba nie dobrze ze JA ( czyli poznaje to nowe ) wysyłam nowe hasło?
nospor
Cytat
co do md5 napisałem że MOŻE odczytam

Cytat
jak je "zahasluje" md5 to chyba będę mógł je odczytać kodem:
tam było CHYBA a nie MOZE. Nie było zadnego "?". Dla mnie to brzmiało jak stwierdzenie a nie pytanie.

Cytat
A "przypomnij haslo" to chyba nie dobrze ze JA ( czyli poznaje to nowe ) wysyłam nowe hasło?
Nie ty, a skrypt. I nie, wszystko jest wporządku.
laik_PHP
Cytat(nospor @ 21.02.2011, 12:48:02 ) *
tam było CHYBA a nie MOZE. Nie było zadnego "?". Dla mnie to brzmiało jak stwierdzenie a nie pytanie.

Nie ty, a skrypt. I nie, wszystko jest wporządku.



Nie, nie było za-pytajnika, ale zdanie to zdanie smile.gif Nieważne smile.gif

Czyli robię skrypt który generuje hasło, wysyła je userowi, wstawia do bazy danych i "potraktowane" md5 dalej jest nie do odczytu?
nospor
Cytat
"potraktowane" md5 dalej jest nie do odczytu?
md5 jest jednostronne. Nie ważne czy dalej czy nie dalej.

Cytat
Nie nie było, ale zdanie to zdanie
A sprawdź to sprawdź. Sprawdzenie tego "pytania" zajęłoby ci pół minuty (wykonanie kodu co sam podales) tongue.gif
TheRiko
1. User prosi o przypomnienie hasła.
2. Skrypt generuje nowe hasło (wysyla je na maila usera) i zakodowane md5 zapisuje do bazy.
3. User loguje sie i zmienia hasla na jakie mu pasuje.

Samo logowanie polega na tym, ze skrypt porownuje haslo podane przez usera na stronie w formularzu (oczywiscie zahashowane) z tym zakodowanym w bazie. Jesli sa zgodne, przepuszcza, jesli nie to nie.
laik_PHP
Cytat(nospor @ 21.02.2011, 12:57:11 ) *
md5 jest jednostronne. Nie ważne czy dalej czy nie dalej.

A sprawdź to sprawdź. Sprawdzenie tego "pytania" zajęłoby ci pół minuty (wykonanie kodu co sam podales) tongue.gif


no OK, pytanie: głownie tylko Ty mi odpisujesz, nie wiesz czym jest to uwarunkowane?


Cytat(TheRiko @ 21.02.2011, 13:15:16 ) *
1. User prosi o przypomnienie hasła.
2. Skrypt generuje nowe hasło (wysyla je na maila usera) i zakodowane md5 zapisuje do bazy.
3. User loguje sie i zmienia hasla na jakie mu pasuje.

Samo logowanie polega na tym, ze skrypt porownuje haslo podane przez usera na stronie w formularzu (oczywiscie zahashowane) z tym zakodowanym w bazie. Jesli sa zgodne, przepuszcza, jesli nie to nie.



mhm, tak właśnie zrobię.

Czyli dzięki i EOT

p.s.
tylko nospor jeszcze odpisz smile.gif
nospor
Cytat
ytanie: głownie tylko Ty mi odpisujesz, nie wiesz czym jest to uwarunkowane?
yyy, wciskam częściej F5? wink.gif

Cytat
mhm, tak właśnie zrobię.
Podane rozwiązanie w dokładnie takiej postaci ma jedną poważną wadę: można dowolnie każdemu zmienić jego hasło smile.gif
laik_PHP
Cytat(nospor @ 21.02.2011, 13:27:55 ) *
yyy, wciskam częściej F5? wink.gif


zapewne, albo tylko Ty jesteś wyjadaczem PHP smile.gif

Cytat(nospor @ 21.02.2011, 13:27:55 ) *
Podane rozwiązanie w dokładnie takiej postaci ma jedną poważną wadę: można dowolnie każdemu zmienić jego hasło smile.gif


tak, wygeneruje mu hasło ( tak jak pisałeś: mogę podejrzeć jakie ) ale poproszę/zmuszę go do zmiany tego hasła w np. 2h smile.gif
nospor
Cytat
zapewne, albo tylko Ty jesteś wyjadaczem PHP
Znowu wyciągasz błędne wnioski.

Cytat
tak, wygeneruje mu hasło ( tak jak pisałeś: mogę podejrzeć jakie ) ale poproszę/zmuszę go do zmiany tego hasła w np. 2h
NIe zrozumiales: przy takim rozwiązaniu, Pan X moze zmienic haslo Panu Y bez zgody pana Y. Pan Y może się bardzo zdziwic przy probie zalogowania, bo już jego stare hasło nie będzie działać.
laik_PHP
Cytat(nospor @ 21.02.2011, 13:36:13 ) *
Znowu wyciągasz błędne wnioski.

etam smile.gif


Cytat(nospor @ 21.02.2011, 13:36:13 ) *
NIe zrozumiales: przy takim rozwiązaniu, Pan X moze zmienic haslo Panu Y bez zgody pana Y. Pan Y może się bardzo zdziwic przy probie zalogowania, bo już jego stare hasło nie będzie działać.


ok, to co proponujesz?

nospor
Jest kilka wariacji, np:
Masz dodatkowe pole na hasło i to dodatkowe pole zmieniasz. Później przy logowaniu sprawdzasz te dodatkowe pole jeśli jest ustawione.
I jeśli user zaloguje się na to dodatkowe pole, to te dodatkowe pole czyscisz a ustawiasz główne pole tym co było w dodatkowym.
Jednocześnie możesz na uzytkowniku wymusisz zmianę hasła.

I masa innych smile.gif
laik_PHP
Cytat(nospor @ 21.02.2011, 13:42:55 ) *
Jest kilka wariacji, np:
Masz dodatkowe pole na hasło i to dodatkowe pole zmieniasz. Później przy logowaniu sprawdzasz te dodatkowe pole jeśli jest ustawione.
I jeśli user zaloguje się na to dodatkowe pole, to te dodatkowe pole czyscisz a ustawiasz główne pole tym co było w dodatkowym.
Jednocześnie możesz na uzytkowniku wymusisz zmianę hasła.

I masa innych smile.gif



OK, zaraz zweryfikuje, teraz mam gościa i spadam, dzięki.
TheRiko
Dokładnie, to trzeba dodatkowo zabezpieczyć, ja podałem tylko ogólną koncepcję, jak to się odbywa wink.gif
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.