Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przypomnienie hasła
Forum PHP.pl > Forum > PHP
mis
Cześć,
ciąg dalszy mojego kodzenia, a mianowicie etap 'przypomnij hasło' moja myśl jest taka:

1. nowa tabela:
id
user_id
date
hash
2. formularz przypomnienia, gdzie podaje się login i email.
skrypt sprawdza czy login i email pasują(są w tym samym rekordzie), tworzy w w/w tabeli dane.
3. user wchodzi na link remember.php?user=user&hash=hash
4.skrypt sprawdza, czy dany hash jest dopasowany do danego usera oraz czy date nie jest większa niż np. 10min, w innym wypadku hash jest nieaktualny i trzeba go wygenerować jeszcze raz.
5.jeżeli jest ok, to wyskakuje input do podania loginu i 2 nowych haseł.

mój tok myślenia jest ok, czy skrypt słabo bezpieczny?
prowseed
A nie łatwiej wysłać obecne hasło na maila podanego przy rejestracji? Bo tak na prawde to wcale nie jest przypominanie hasla, tylko resetowanie.

@down
ha to dobre smile.gif
timon27
Cytat(prowseed @ 13.12.2011, 18:53:54 ) *
A nie łatwiej wysłać obecne hasło na maila podanego przy rejestracji? Bo tak na prawde to wcale nie jest przypominanie hasla, tylko resetowanie.

smile.gif
Pan chyba z allegro.
Haseł nie trzyma się na serwerze. Wystarczą ich hashe.
Tak jest też tutaj zrobione, jak się dobrze wczytasz w to co powiedział poprzednik.

Cytat
mój tok myślenia jest ok, czy skrypt słabo bezpieczny?


Średnio.
Przykład: Tworzę sobie nowe konto w twym serwisie z sobie znanym hasłem. Gdy chcę przypomnieć hasło, ty mi wysyłasz hasha - mogę znaleźć jaką metodą hasujesz hasła, co już jest pewną nieodpowiedzialnością z twojej strony.
Musisz użyć silnej soli, lub nie wysyłać hasha, tylko np. hash hash smile.gif
cycofiasz
Ale chyba autor tematu nie miał na myśli hasha hasła tylko hash = losowy token weryfikacyjny.

Tok myślenia jest poprawny, nie zapomnij o antyfloodzie przypominania hasła, nie chcemy przecież mieć zapchanych skrzynek wink.gif
celbarowicz
Skrypt troszeczkę przestarzały(np: eregi), ale dobry do nauki.
http://www.webskrypty.pl/2010/system-rejes...i-uzytkownikow/
mis
prowseed, nie bardzo, co wyżej napisał timon.

timontak jak cycofiasz zauważył, mówię o indywidualnym hasu, kwestia zasolenia hasha to juz inna bajka, mogę tez użyć soli, którą użyłem podczas rejestracji(do zasolenia hasła), gdzie jest indywidualnie utworzona dla każdego usera, więc odczyt hasha(do przypomnienia), nie będzie chyba dość prostą sprawą.

cycofiasz, antyflood mógłby być przy wysyłaniu przypomnienia sprawdzany czas wysyłania ostatniego hasha, jak nie mniej niż 5 min wtedy nie wyśle, oto chodzi?

celbarowicz , poczytam, dzięki!, jednak wolałbym coś 'profesionalniejszego' smile.gif
Niktoś
Jako dodatkowy atut to do swojej metody możesz zapisać tego hasha jako jpg.I przesłać w body emaila.Czytałem ,że ten sposób jest trudniejszy do wyłapania przez ewentualne nasłuchy.
Znacznie trudniej jest przechwycić obraz niż sam tekst.
tehaha
proces resetowania hasła powinien wyglądać tak:
1. użytkownik wybiera opcję przypomnij hasło, gdzie podaje swój e-mail (raczej nie polecałbym wymagania jeszcze nicku, bo jak z jakiegoś serwisu rzadko korzystasz to nick tak samo się zapomina jak hasło
2. jeżeli podany przez użytkownika e-mail jest w bazie to na jego e-mail wysyłasz link, którego kliknięcie zresetuje hasło
3. po zresetowaniu hasła, albo pozwalasz wpisać mu nowe hasło, albo wysyłasz mu na e-mail wygenerowane nowe hasło
4. jeżeli chodzi antyflood to ja bym nie ustawiał go specyficznie pod przypominanie hasła tylko pod cały serwis, czyli jeśli jakieś IP wysyła zbyt częste żądania to jest blokowany czasowo, ale możesz też np. zrobić tak, żeby można było np. max 3 razy dziennie przypomnieć hasło na podany e-mail i oczywiście wyświetlasz wtedy odpowiedni komunikat, że przekroczony dzienny limit przypominania hasła

@UP Niktoś nie wiem czy dobrze zrozumiałem, ale czy Ty sugerujesz, że użytkownik miałby dostać obrazek z hashem i sobie go przepisywać w celu odzyskania hasła?
Niktoś
Cytat
sugerujesz, że użytkownik miałby dostać obrazek z hashem i sobie go przepisywać w celu odzyskania hasła

Nom,niewygodne dla użytkownika,ale bezpieczniejsze.Ja tak u siebie zrobiłem.
Z tym limitem to dobra sprawa-chyba takie coś wklepie u siebie,jak nie będę już miał co robić.
mis
czyli ogólnie mój tok myślenia i wykonanie jest ok.
a mógłbyś mi opisać, ta blokade IP, jak uzyskać ile dane IP wysyła żądań i jakie to miały by być(tylko przypomnienie czy jakieś inne też)?

Niktoś, raczej słabo, bo wątpie żeby ktoś chciał się w to bawić, może i bezpieczne, ale mało wygodne, a to też jest tu ważne i raczej nigdzie się z tym nie spotkałem.
Niktoś
Zależy kto jak na to patrzy, ja stawiam na bezpieczeństwo.
tehaha
@Niktoś, ale czy możesz czymś to poprzeć, że standardowe wysyłanie linka na e-mail jest niebezpieczne? Bo szczerze mówiąc brzmi to dość odpychająco, a swoją drogą nigdy nie widziałem nawet takiego rozwiązania, ani nie słyszałem, żeby standardowa metoda powodowała jakieś wycieki.

@mis generalnie chodzi o to, że jak z jakiegoś IP masz kilka żądań na sekundę to raczej nie jest to człowiek a automat, i trzeba to zablokować, najlepiej poszukaj w google "php flood protection", "anti flood protection" znajdziesz artykuły i gotowe skrypty.
Niktoś
A czy tak nie działa Captcha?Jedyna różnica że ja wysyłam obrazek na maila-a pole textowe jest na stronie docelowej .Wychwycenie strumienia danych ,jest trudniejsze niż plain-textu-poczytaj o sniffingu.
tehaha
captcha to zupełnie inna kwestia bo chodzi o odróżnienie człowieka od automatu, a nie o przechwycenie danych. Wiem co to sniffing ale chodzi mi o to, że jak nie ma realnego zagrożenia to dodawanie nie wygodnego zabezpieczenia dla samej sztuki nie ma sensu.
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.