Autor Zpráva
pito
Profil
Zdravím,

Potřeboval bych vědět jak udělám zapomenutí hesla.Jestli nějaký uživatel zapomené heslo tak stačí jak napíše svůj nick a heslo se mu pošle na email, který zadál v registraci.Jenže to bude asi problém protože mám hesla uložené v md5.
curdto
Profil
pito
Musíš mu vygenerovat nové heslo.
Timy
Profil
Pošli mu emailem odkaz na stránku, kde si heslo může změnit, přičemž a adrese by se měl nacházet nějaký náhodně vygenerovaný klíč.
Tomashek
Profil
osobně to dělám tak, že mu na mail příjde jenom odkaz s vygenerovaným kodem,který k němu uložím, a když najede na ten odkaz, tak si přímo může změnit heslo na jaké chce a ten kód poté smažu
edit: pozdě :-(
pito
Profil
no to nevím jak udělat to poslání na email odkaz.Změnu hesla bych zvladl možná.Jsme začátečník.
Timy
Profil
pito
Primitivnější způsob je vygenerovat nové náhodné heslo, které mu pak pošleš emailem. Nevýhoda tohoto postupu je, že můžu takhle resetovat hesla kdekomu.
ninja
Profil
pito: pro odeslani emailu pouzij PHP funkci mail(), nebo vybornou tridu PHPMailer.

Do textu emailu napises "Nove heslo si muzete vygenerovat na http://www.example.com/nove-heslo?kod=asdkjvvu9890f84kjkl45l".

Na te strance vezmes predany kod, najdes podle nej odpovidajiciho uzivatele, ktery si vazad zmenu hesla nejpozdeji pred XX dny (bezpecnost) a v pripade souhlasu nabidnes formular pro zadani noveho hesla.
nesro@jabber.org
Profil *
Zkus dát testování otázka->odpověď - pokud správně odpoví, vygeneruje se mu nové heslo a to se mu pošle na email. Vyhneš se tak resetování hesel.
Tomasds
Profil
nesro@jabber.org
Timy
Píšete o resetování hesla někomu, zřejmě tím, že do formuláře "zapomněl jsem heslo" někdo jiný zadá jeho mail. To je ale zbytečné. Není problém hash updatnout až na základě nového hesla.
radecek
Profil
Mě se osobně nejvíce libí když kliknu na odkaz že jsem zapomněl heslo.. Zadám email, který mám všude stejný, přijde mi email kde je napsane někdo v tuto hodnu z teto IP žádal o nové heslo pokud ho doopravdy chcete změnit klikněte sem, pokud ne tento email ignorujte.

Kliknu na link, kde je formulář na změnu hesla. Link bude jednoduše vypadat nějak takhle: stranka.cz/zmena-hesla.php?uid=3. Osobně bych asi uid přejel nejakým sha1 ale to už něchám na tobě. Pak jednoduše přepíšeš řádek v tabulce: update uzivatel set heslo = sha1('" .$_POST["heslo"]. "') where id = ". $_GET["uid"].
nesro@jabber.org
Profil *
Tomasds
Jo ano, moje chyba. Myslel jsem tím posílání nevyžádaných emailů.

Možná se může zdát, že otázka je zbytečně komplikovaná pro zaslání linku na změnu hesla, ale taky jak moc často uživatelé zapomínají hesla.

radecek
Tohle řešení neni moc ideální. Chtělo by to rozepsat. Pokud mi přijde na mail stranka.cz/zmena-hesla.php?uid=3 tak to můžu přepsat na stranka.cz/zmena-hesla.php?uid=4 a změnit heslo někomu jinému!

Trošku složitější řešení by bylo zaznamenávat žádání hesla do db. Kde by se uložil čas, ip, id toho, kdo chce změnit heslo. Pak dát platnost odkazu třeba 20minut. Je to možná složité, ale řekl bych, že ( snad :D ( bezpečne
radecek
Profil
nesro@jabber.org
Možná by stačilo dočist odstavec: "Osobně bych asi uid přejel nejakým sha1". Toto je zjednodušený verze, možný bych ještě do adresy připsal pravé heslo a login, které bych přejel sha1, aby to bylo doopravdy bezpečné. Pak asi hacker nezmění jen 3 na 4 :) Určite bych neposílal hesla mailem..

IP adresa je dobrý napad, ale pokud provider neposkytuje veřejnou tak jedinečnou adresu muže mít tisíce lidí. Ale nápad z druhou tabulkou jako seznam, těch kteří chtějí změnit heslo s platností 20minut je dobrý nápad.

Trošku OT heslo by mělo být v tabulce uložený zakodováný - mysql funkce (PASSWORD, SHA1, MD5, ..) Aby hesla nemohl přečíst ani administrátor.
nesro@jabber.org
Profil *
radecek
OT reakce na OT: a pokud by se stalo, že by se nějaký hacker do databáze dostal, tak alespoň neuvidí hesla, protože hodně lidí má jedno heslo ke všemu
pito
Profil
jo jasne vzdyt jsem psal ze to mam v MD5
Joker
Profil
Tomasds
Není problém hash updatnout až na základě nového hesla.
No a kde se bude to nové heslo držet do té doby?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: