Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Reset hasła + mail.
zaaap
post 25.05.2009, 20:26:44
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 13.11.2008

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


Witam,
Budujac strone z systemem kont natrafilem na maly problem. Otoz szukam skryptu czy jakiegos nakierunkowania na rozwiazanie takiego oto problemu:

user zapomina hasło, podaje swoj nick/email, haslo jest resetowane ale dopiero po kliknieciu linka otrzymanego mailem.

Do tej pory udalo mi sie stworzyc jedynie system ktory generuje losowe 16 znakowe haslo, robi updejt w bazie i wysyla owe haslo do usera, ale w takim ukladzie kazdy moze zresetowac haslo innego uzytkownika. Domyslam sie, ze moze chodzic o jakies tokeny czy cos podobnego? Szukalem tu na forum ale bez skutku a jak na google wpisuje resetowanie hasla to listuje mi milion for z linkami do resetu haseł.
Go to the top of the page
+Quote Post
TheaSiX
post 25.05.2009, 20:46:23
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

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


może to Ci jakoś pomoże:

http://net.tutsplus.com/tutorials/php/crea...covery-utility/
Go to the top of the page
+Quote Post
l0ud
post 25.05.2009, 20:47:47
Post #3





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Zrób sobie nowe pole w tabeli użytkowników, które będzie zawierało powiedzmy 16 znakowy ciąg (generowany losowo). Domyślnie użytkownik ma to pole puste. Jednak, przy wybraniu opcji zmiany hasła pole jest uzupełniane o losowy ciąg, a do użytkownika wysyła się e-mail z linkiem do skryptu, wartością tego pola oraz dla bezpieczeństwa dodatkowo ID usera. Po wejściu przez taki link pole w bazie jest weryfikowane i na powrót czyszczone. W tym momencie masz kilka możliwości:
- podanie użytkownikowi możliwości wpisania nowego hasła bezpośrednio na stronie (po wpisaniu zostanie zmienione)
- zmiana aktualnego hasła na jakieś losowe i wyświetlenie go lub (bezpieczniejsze) wysłanie na e-mail.

To chyba jedno z najprostszych rozwiązań jakie da się wymyślić smile.gif Tylko pamiętaj o odpowiednim generowaniu ciągu - nie może być za nic możliwy do odgadnięcia.

Ten post edytował l0ud 25.05.2009, 20:49:04


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
cojack
post 25.05.2009, 20:48:45
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Robisz coś takiego:
  1. CREATE TABLE reset_user
  2. id serial UNIQUE PRIMARY KEY,
  3. user_id integer,
  4. hash varchar(32),
  5. time integer,
  6. FOREIGN KEY (user_id) REFERENE user(id)

I tak, tworzymy hasza dla usera, i wysylamy do niego linka z tym haszem, jezeli kliknie na takiego hasza to wtedy po haszu sprawdzasz id usera, i zmieniasz mu haslo.
Proste, pozdrawiam.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
zaaap
post 25.05.2009, 21:06:25
Post #5





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 13.11.2008

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


OK, rozumiem Wasz tok myslenia. W tym momencie sprawa rozbija sie o stworzenie takiego wlasnie linka z haszem oraz powiazanie tego z faktem klikniecia na ten link. Nie wiem jak sie za to zabrac. Okej tworze tego hasza przez jakis tam algorytm, sprawa drugorzedna, robie ta powiedzmy temp_tabele, i uzupelniam ją tym haszem, ale wlasnie nie wiem jak przekazac bazie fakt wejscia na dany link...
Go to the top of the page
+Quote Post
cojack
post 25.05.2009, 21:14:08
Post #6





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


No jak jak? Przeciez to jest proste, link bedzie mial jakis get tak? Wiec np index.php?haslo=reset&hasz=436gk436k34g6g454fkjgisdytgfoisdghtrlwkrjg

no i co? mamy w pliku index.php jakies tam switche ify czy co, i jezeli jest get haslo i zawiera reset to sprawdzamy czy dany hasz znajduje sie w bazie, znajduje, to resetujemy haslo usera, przekierowywujemy go na strone z resetowaniem hasla i po id usera zmienamy haslo, po tym wszystkim kasujemy z bazy wiersz.
Amen.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.05.2025 - 08:31