Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sensowne 'zapomniałem hasła'
tmk
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

Ostrzeżenie: (0%)
-----


Witam,
jaki jest sensowny sposób na zrobienie opcji "zapomniałem hasła"?
mam zrobione logowanie php+mySql na sesjach, w bazie trzymam login i md5(hasło).

Myślalem o tym, żeby użytkownik podawał email i login, i jeśli taki istnieje w bazie, to dla konta o takim email i login zrobić Update:
zapomniane hasło zamienić na jakieś losowe i wysłać mail z nowym hasłem.

Ale chyba powinna być jeszcze jakaś aktywacja tego nowego hasła? czy myślicie, że nie jest to konieczne?

z góry dzięki za opinie

tmk
Go to the top of the page
+Quote Post
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Cytat
Ale chyba powinna być jeszcze jakaś aktywacja tego nowego hasła? czy myślicie, że nie jest to konieczne?


Raczej nie ma potrzeby - wystarczy sobie zadać pytanie - po co ?
Go to the top of the page
+Quote Post
tmk
post
Post #3





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

Ostrzeżenie: (0%)
-----


A jak można losować jakiś ciąg mieszany litery-cyfry? bo rand, srand, to tylko do liczb się nadają..
jest gotowa funkcja? czy trzeba jakoś swoją zmontować?



tmk
Go to the top of the page
+Quote Post
gilbo
post
Post #4





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 16.04.2004
Skąd: z domu

Ostrzeżenie: (0%)
-----


Ja myślę, że jednak takie potwierdzenie byłoby przydatne, ponieważ osoba, która zapomniała hasła mogła podać komuś swój email i ktoś może jej to hasło zmienić, a ta osoba nie wiedząc o tym będzie się męczyła nad wpisaniem starego hasła...
Go to the top of the page
+Quote Post
crash
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Cytat(gilbo)
a ta osoba nie wiedząc o tym będzie się męczyła nad wpisaniem starego hasła

Nie wiedząc o czym? O tym, że dostała nowe hasło na maila? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

tmk: było wiele razy na forum, poszukaj...
Go to the top of the page
+Quote Post
Leezard
post
Post #6





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 19.09.2004
Skąd: Uć

Ostrzeżenie: (0%)
-----


@tmk: chyba losowanie mozna zrealizowac np generujac sobie id sesji i uzyc go jako hasla
Go to the top of the page
+Quote Post
rogrog
post
Post #7





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


po kliknięciu wysyłasz emaila z losowym nowym hasłem oraz linkiem aktywacyjnym. Po wejściu na ten link można użyć przesłanego losowego hasła do ustawienia nowego, własnego hasła. Email posiada też informację tego typu:

"prawdopodobnie użyłeś opcji "zapomniałem hasła". Jeżeli tego nie robiłeś, zignoruj ten email"

bo przecież linku "Zapomniałem hasła" może użyć każdy, a głupio by było codziennie mieć nowe hasło ustawiane przez zlosliwych kolegow
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
A jak można losować jakiś ciąg mieszany litery-cyfry? bo rand, srand, to tylko do liczb się nadają..
jest gotowa funkcja? czy trzeba jakoś swoją zmontować?

Jest taka funkcja do tworzenia takich ciagow znakow (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) tylko nie pamietam jej nazwy. Jak znajde (a konkretnie -- jak przypadkiem znow na nia trafie) to podam.
Go to the top of the page
+Quote Post
NuLL
post
Post #9





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Jak masz może na serwerze jakiś słownik aspell to może sobie wbrac losowe slowo.
Go to the top of the page
+Quote Post
Jabol
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


wiecie, podanie komuś emaila nie oznacza odrazu, że ma on dostęp do konta samego w sobie... nie przesadzajmy.
Go to the top of the page
+Quote Post
rogrog
post
Post #11





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


losowanie: robisz sobie tablicę z możliwymi znakami i array_rand. do wypełnienia tablicy możesz użyć range
Go to the top of the page
+Quote Post
jono
post
Post #12





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Co do losowego hasła:

  1. <?php
  2.  
  3. $nowe = substr(md5(uniqid(rand(), true)), rand(0,10), 5);
  4.  
  5. ?>


Uzyskasz w ten sposób bardzo ładne, pięcioznakowe hasełko... a potem przy pierwszym logowaniu wyświetl komunikat: "to tylko hasło tymczasowe, ustal nowe"... ale rymuję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Po co robić jakieś tablice, skoro są gotowe rozwiązania do tego.
Go to the top of the page
+Quote Post
rogrog
post
Post #13





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


@jono: przy tablicy masz większą kontrolę nad zestawem znaków dla hasła.

no ale dla haseł zawierających wyłącznie litery i cyfry Twój kod jest ok. Wg mnie niepotrzebne obcinanie od losowej pozycji.
Go to the top of the page
+Quote Post
talee
post
Post #14





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 7.09.2002
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Moim skromnym zdaniem jedyne słuszne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) rozwiązanie wygląda następująca:
'zapomniałem hasła' klik,
formularz adres ‘e-mail’ zapominalskiego,
na ten mail idzie list z linkiem do formularza ‘nowe hasło’, ‘powtórz hasło’,
kolo wpisuje co trzeba i po krzyku.
Link oczywiście ma jakiś tam okres ważności.
Go to the top of the page
+Quote Post
AxZx
post
Post #15





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


skonczmy teoretyzowac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
przejdzmy do konkretow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

skad ten ostatni formularz do nowego hasla ma wiedziec ze odpowiednia osoba chce zmienic haslo ? - swoje haslo

w linku podac jakis sid skladajacy sie z 32 znakow? i sprawdzic czy ten kto wchodzi wchodzi poprzed dobrego linka czyli sprawdza id z linka z jakims tam sid pobranym np z bazy ?
czyli trzeba utworzyc kolejna kolumne w tabeli user
dobre?
tak zrobilem newsletter do usuwania kogos i potwierdzania checi dostawania newsow.
Go to the top of the page
+Quote Post
tomilipin
post
Post #16





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 28.01.2004
Skąd: że znowu ლ(ಠ益ಠლ

Ostrzeżenie: (0%)
-----


Cytat(jono @ 2005-02-08 19:55:34)
Co do losowego hasła:
  1. <?php
  2.  
  3. $nowe = substr(md5(uniqid(rand(), true)), rand(0,10), 5);
  4.  
  5. ?>
[...] Po co robić jakieś tablice, skoro są gotowe rozwiązania do tego.
Sorry, że odpowiadam trochę po czasie, ale powiem wam jak zrobiłem to ja, chociaż zaawansowany nie jestem.

Nowe hasełko można wygenerować za pomocą
  1. <?php
  2. $nowehaslo = uniqid(' ');
  3. ?>
Co da w rezultacie ciąg 13 cyfr i liter wygenerowany na podstawie aktualnego czasu + może dodać ciąg zawarty w atrybutach.

W bazie, dla każdego usera warto zapisywać jego status, np. 0 to user nieaktywny, 1 - aktywny, 2 - była prośba o zmianę hasła. Gdy status=0 to do usera nie wysyłamy wiadomości newslettera. Gdy status=1 wiadomo, a gdy status=2 możemy wysłać wiadomości np. newslettera bo ktoś, nie wiadomo kto, próbował usunąć konto/zmienić dane/zrobić cokolwiek co wymaga potwierdzenia ale jeszcze tego nie potwierdził. I gdy status=2 a user potwierdza co tam chciał to wtedy zmieniamy mu status na inny albo usuwamy rekord. Statusy mogą się różnić w zależności od potrzeb, zawsze może być ich więcej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Tak robię swój newsletter, który działa na tekstowej bazie danych a który wymaga potwierdzenia dodania/usunięcia adresu e-mail i umożliwia to za pomocą linków w mailach oraz za pomocą formularza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jeśli ktoś zgubi klucz potwierdzenia, usunie maila czy cokolwiek innego, to dopóki status nie równa się 1 - może wysłać do siebie nowy klucz, inny od poprzedniego.
http://www.pil.vectranet.pl/~tomilipin/newsletter/index.php

Ten post edytował tomilipin 17.11.2005, 22:45:31
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 14:28