Jump to content
php.lv forumi

paroles resets


aika

Recommended Posts

Situācija sekojoša: vajag apstrādāt paroles aizmiršanas/nomešanas mehānismu!

Patlaban ir situācija kad pēc pieprasījuma uz e-mailu tik nosūtīta jauna parole. Mehānisms suxīgs - jo iespējama ļaunprātība!

Ko es gribētu izveidot: pēc pieprasījuma uz meilu tik nosūtīta unikāla saite, kuru aktivizējot tikai tiek nomainīta parole!

Diemžēl neredzu iespēju kā to paveikt bez datubāzes iedarbināšanas (fiksējam pieprasījumu, ģenerējam unikālu id, ierakstam, pēc pieprasījuma salīdzinām un sūtam jaunu paroli!)

Vai ir citi mehānismi? Idejas?!

Link to comment
Share on other sites

Viens variants, kā neiedarbināt DB:

Datu šifrēšanai izmantojam kodā iešūtu slepenu virkni:

K

Datu integritātes pārbaudei izmantojam kodā iešūtu slepenu virkni:

X

Lietotāja id (vai login):

U

Uzģenerējam jauno paroli:

P

Uzģenerējam datum-laiku, līdz kuram derīgs:

T

Izmantojam šifrēšanas funkciju:

mcrypt_encrypt() - EK(M);

Izmantojam hashoshanas funkciju:

hash_hmac() - HX(M);

Uz e-pastu sūtam virkni:

EK(P & T & U & HX(P & T & U)) un P (lai cilvēks varētu zināt, uz ko tad nomainīta parole)

Pie saņemšanas atšifrējam (ja, neizdodas atšifrēt, tātad nav derīgs) un dabūjam

P' T' U' un H'

Pārbaudam vai T' ir pieļaujamās robežās;

Pārbaudam, vai eksistē tāds lietotājs U'

Pārbaudam, vai HX(P' & T' & U') == H'

Nomainam lietotājam U' paroli uz P'

 

 

Patiesībā varēja arī neģenerēt paroli, bet pie hashu sakrišanas ļaut ievadīt brīvi izvēlētu paroli.

Link to comment
Share on other sites

Vēl papildus visam var uzģenerēt aktivizēšanas kodu:

C

Kurš tiek izmantots šifrēšanas atslēgas ģenerēšanā. To parāda lietotājam kopā ar paziņojumu, ka pieprasījums aizsūtīts uz e-pastu, taču uz e-pastu nesūta. Līdz ar to izmantojam nevis K, bet gan

HK©

Līdz ar to, pieprasam ievadīt arī šo C, pie saņemta URL.

Link to comment
Share on other sites

×
×
  • Create New...