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
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.
@down
ha to dobre
timon27
13.12.2011, 19:34:19
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.

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
cycofiasz
13.12.2011, 19:38:59
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
celbarowicz
13.12.2011, 20:13:57
Skrypt troszeczkę przestarzały(np: eregi), ale dobry do nauki.
http://www.webskrypty.pl/2010/system-rejes...i-uzytkownikow/
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'
Niktoś
13.12.2011, 20:46:13
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
13.12.2011, 20:49:53
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ś
13.12.2011, 20:54:00
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ć.
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ś
13.12.2011, 20:58:44
Zależy kto jak na to patrzy, ja stawiam na bezpieczeństwo.
tehaha
13.12.2011, 21:01:26
@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ś
13.12.2011, 22:28:27
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
13.12.2011, 23:08:23
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.