Archiv verlassen und diese Seite im Standarddesign anzeigen : passwort recovery
tkuebler
15.06.2010, 09:59
nachdem ich dein sicheres Anmeldescript (Profi) verwendet habe, besteht nun die Anforderung jemandem der sein pass vergessen hat ihm dies zukommen zu lassen am besten per mail.
sowas habe ich auch schon umgesetzt, allerdings wird ja dann das passwort im klartext per email versendet und dabei bauchschmerzen.
Gibt es da sicherere Wege?
mfg Tobi
theWalli
15.06.2010, 10:22
Hmm,
evt. könnte man das so machen, dass an die E-Mail-Addresse die der Benutzer bei der Registrierung angegeben hat einen Link schickt, der zu einem Formular führt, auf dem man sein Passwort neu eingeben kann.
Zusätzlich schickt man einen irgend einen generierten Code mit, der ebenfalls eingegeben werden muss, damit erkennbar ist ob es sich bei der Person, die das neue Passwort setzt, wirklich um den Account-Eigentümer handelt.
Dem Code würde ich dann auch nur eine gewisse Gültigkeitsdauer geben. 20 Minuten oder etwas in die Richtung.
Zumindest fällt mir gerade nichts Besseres ein.
Gruß, theWalli
tkuebler
15.06.2010, 10:58
es geht mir darum das das pass unverschlüsselt per mail verschickt wird.
hat jemand mal eine verschlüsselte email gemacht?
phpBuddy
15.06.2010, 11:40
es geht mir darum das das pass unverschlüsselt per mail verschickt wird.
hat jemand mal eine verschlüsselte email gemacht?
Ist das überhaupt möglich? SSL/TLS ist ein Tunnel, eine direkte Verbindung zwischen SMTP-Server und Empfänger. Der Empfänger schickt einen Auth voraus und nach dem Handshake mit dem Server wird der Tunnel aufgebaut. Wie soll das mit PHP gehen? PHP ist ja kein Mail Server. Man müsste also eigene Postfächer auf dem eigenen Server zur Verfügung stellen, von dem die User dann die Mail abrufen können. Man könnte Mails via SMTPS vom eigenen Server verschicken, aber diese Verschlüsselung würde nur bis zum ersten Mailserver reichen und von dort unverschlüsselt weiter übertragen werden.
Ich habe bisher auch noch nie von Problemen gehört, dass Mail gesnifft wurden, die von einem PHP Script verschickt wurden. Falls das zutrifft, dann hat man unter Garantie Probleme einer ganz anderen Dimension auf seinem Server. ;) Eine Mail schwirrt als Fragmente (Datenpakete) durchs Web, bis alle Teile beim Zielserver ankommen und dort wieder zusammengesetzt werden. Dort kann der User dann eine verschlüsselte Verbindung aufbauen und die Mail herunterladen. Das muss der User aber explizit in seinem Client einstellen und darauf hat man selbst keinen Einfluss - schon gar nicht von PHP aus.
Mit hundertprozentiger Sicherheit kann ich es dir nicht beantworten, vielleicht gibt es irgend eine Möglichkeit mit zusätzlicher Softwareinstallation auf dem Server, aber schon das wird in dem meisten Fällen auf Mietwebspace nicht möglich sein, da man dort idR nichts installieren darf.
Das Passwort erneut zusenden geht auch nicht, da es nicht auf dem Server gespeichert ist. Man kann nur temporär ein neues Passwort erzeugen und dieses verschicken. Nicht vergessen den entsprechenden neuen Hash mit dem Salt in der DB zu speichern.
tkuebler
15.06.2010, 12:21
mhh...ok...dann bin ich ja beruhgt. Dachte da gäbe es was...
ich finde, wenn ein anderer Server bei der Passwortvergessen funktion das Passwort im Klartext verschickt, hat große Benutzer Sicherheitslücken.
Gruß Ziller
phpBuddy
15.06.2010, 16:26
ich finde, wenn ein anderer Server bei der Passwortvergessen funktion das Passwort im Klartext verschickt, hat große Benutzer Sicherheitslücken.
Gruß Ziller
Deswegen verschickt man normalerweise auch keine Passwörter, sondern Re-Aktivierungslinks, gekoppelt mit einer Sicherheitsfrage o.ä.
Aber wenn diese Art des Email versendens via PHP eine so große Sicherheitslücke ist, wie geht es denn verschlüsselt? Würde mich persönlich auch interessieren. :)
Korgal2k4
06.01.2011, 01:48
also ich hab das bisher immer so gemacht dass das Passwort an die Email verschickt wird und in der Datenbank mit md5 verschlüsselt wird. Find ich eigentlich am umkompliziertesten.
lg
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.