AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!
Thema durchsuchen
Ansicht
Themen-Optionen

Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

Ein Thema von T.E. · begonnen am 5. Apr 2008 · letzter Beitrag vom 7. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
T.E.

Registriert seit: 27. Mai 2007
Ort: Hamburg
284 Beiträge
 
Delphi XE2 Enterprise
 
#1

Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 5. Apr 2008, 14:50
Hallo Leuts!

Ich hab mal eine Frage:
und zwar habe ich für eine Homepage einen Login mit PHP und MySQL und Sessions erstellt.
Die Tabelle sieht folgendermaßen aus:
SQL-Code:
CREATE TABLE `members` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `username` varchar(150) character set latin1 collate latin1_german1_ci NOT NULL,
  `vorname` varchar(150) character set latin1 collate latin1_german1_ci NOT NULL,
  `password` varchar(32) character set latin1 collate latin1_german1_ci NOT NULL,
  `emailadresse` varchar(150) character set latin1 collate latin1_german1_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
Hier wird das Passwort verschlüsselt und der Username, sowie eine Emailadresse und der Vorname (alle unverschlüsselt) gespeichert und später mit der Abfrage (dem Login) verglichen. Bei einer Übereinstimmung wird, wird dann halt zur nächsten Seite weitergeleitet.
- Das Funzt soweit einwandfrei.

Jetzt habe ich aber eine weitere Tabelle eingerichtet, aus der später das Passwort wiederhergestellt werden kann. deshalb werden die Daten in dieser Tabelle nicht verschlüsselt.
Aufbau Tabelle:
SQL-Code:
CREATE TABLE `members2` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `username` varchar(150) character set latin1 collate latin1_german1_ci NOT NULL,
  `vorname` varchar(150) character set latin1 collate latin1_german1_ci NOT NULL,
  `password` varchar(32) character set latin1 collate latin1_german1_ci NOT NULL,
  `emailadresse` varchar(150) character set latin1 collate latin1_german1_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
Genauso wie die obere.
So nun habe ich im moment eine recht plumpe art ein Passwort rauszusuchen: Über ein Skript schickt der unglückliche mir seine Emailadresse, seinen Benutzernamen und den Vornamen zu und ich such dann manuell das richtige Passwort heraus.
So das wollte ich gerne ändern und zwar wollte ich das diese eingaben direkt auf dem Server mit der Tabelle verglichen wird und dann automatisch das richtige Passwort an den Benutzer geschickt wird (nur wenn ALLE daten übereinstimmen!). Aber da ist dann Ende im Gelände.
Ich habe leider keine wirkliche Idee, wie ich dem Skript sage, das es aus den mit POST übergebenen Variablen den Benutzernamen, die Emailadresse und den VOrnamen so verarbeiten soll, das schließlich eine Email in der folgenden Form herauskommt:
Zitat:
An: UNGLÜCKLICHER@USER.DE(*)

Von: Passwortrecovery <anbieter@domain.de>

Betreff: Passwortrecovery für Mitgliederbereich

Nachricht:
Sehr geehrter Unglücklicher(*)!

Am DATUM(*) um UHRZEIT(*) wurde eine Passwortwiederherstellung von folgender IP: IP(*) für Ihren Benutzernamen beantragt.
Sollten Sie diese Anfrage nicht gemacht haben, so melden Sie sich bitte umgehend beim Administrator unter folgender Emailadresse:
mailto:admin@domain.de
Und teilen Sie diesem bitte das Datum, die Uhrzeit sowie die IP mit, die oben aufgelistet sind.

Sollten Sie diese Email erhalten, obwohl Sie nicht auf dieser Website angemeldet sind, so können Sie diese Email löschen, oder sich an den Administrator wenden, damit der Benutzer wegen benutzens einer falschen Emailadresse gesperrt werden kann.

Login-Daten:

Vorname: VORNAME(*)

Passwort: PASSWORT(*)


Sollte ein Login weiterhin nicht möglich sein, so melden Sie sich bitte bei der Administration.

Mit freundlichen Grüßen

Der Administrator


##################################
DIESE EMAIL WURDE AUTOMATISCH GENERIERT!
WEITERE INFOS UNTER: <a href="http://DOMAIN.DE">
##################################
Erst mal eine kurze Erklärung für die (*) und die Werte in Eckigen Klammern:
Die mit Sternchen Markierten Werte sollen mit dem Skript ausgelesen und hier eingebaut werden.

Die Werte in den Eckigen Klammern sollen die Formatierungen der Textabschnitte sein:
b -> Fett
i -> Kursiv
u -> unterstrichen
Emailadressen habe ich übrigens absichtlich nicht die Original angegeben^^

So nun aber zur eigentlichen Frage:
Hat jemand einen Tipp oder Vorschläge, wie ein derartiges Skript aussehen sollte?
Mir würden sonst auch ähnliche Skripte helfen, die ich modifizieren könnte...

Schon mal vielen Dank!!

PS: Ich möchte bitte keine Kommentare hören, wie "Such mal bei Google" oda so...
Gruß Torben
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 5. Apr 2008, 14:54
Hi,

wenn Du es einmal verschlüsselt und einem nicht verschlüsselst abspeicherst, kann es gleich nicht verschlüsselt abspeichern, wenn jemand an die Daten rankommt, dann sowieso an beide Tabellen.

Mach es doch, wie andere auch: Wenn jemand ein neues Passwort anfordert, generiere ein neues und schicke es dem Benutzer zu.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 5. Apr 2008, 16:10
Zitat von Die Muhkuh:
Mach es doch, wie andere auch: Wenn jemand ein neues Passwort anfordert, generiere ein neues und schicke es dem Benutzer zu.
Seh ich auch so, du solltest zu keiner Zeit das Passwort eines Benutzers in Klartext in der Datenbank haben.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 5. Apr 2008, 16:16
Dem schließe ich mich an. Oberste Priorität sollte die Sicherheit der Benutzerdaten haben. Ich mache es so:

Code:
$passwd = request_var('r_password', '', 'p');
$passwd2 = request_var('r_password2', '', 'p');

$salt_dyn = $session->generate_salt();

$passwd_hash = $session->generate_hash($passwd, $salt_dyn, STAT_SALT);
$passwd2_hash = $session->generate_hash($passwd2, $salt_dyn, STAT_SALT);

unset($passwd);
unset($passwd2);
unset($_POST['r_password']);
unset($_POST['r_password2']);
Also ich gebe die Variablen, die das Passwort im Klartext enthalten auch frei, sobald ich diese nicht mehr benötige.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 5. Apr 2008, 16:39
Du könntest folgendes (meiner Meinung nach sehr intelligentes) Verfahren anwenden:
Wenn der Benutzer sein PW vergessen hat, kann er ein Neues anfordern.
Du generiert ein zusätzliches 2. Passwort (zufällig aus 8 Buchstaben & Ziffern) und speicherst es beim User und sendest es per EMail.
Zusätzlich speicherst du Datum & Uhrzeit.
Das orginale PW bleibt erhalten !!!
Beim Login prüfst du einfach das Hauptpasswort.
Sollte dies fehlschlagen kommt das 2. Passwort ins Spiel. Allerdings darf es nicht älter als 24 Stunden sein; ist es älter, ignorierst du es.

Vorteile:
Passwort muss nie im Klartext gespeichert werden (ausser in der EMail)
Wenn ein Scherzbold ein PW anfordert, kann der richtige User sich trotzdem anmelden, auch wenn er die EMail nicht gelesen hat.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 5. Apr 2008, 16:52
Ich erläutere noch kurz mein Verfahren:

1. "Passwort vergessen" anklicken
2. Name + E-Mail muss eingegeben werden
=> Benutzer erhält eine E-Mail, in der er über einen Link bestätigen muss, dass er es ist. Daraufhin erhält er eine 2. E-Mail mit dem neu generierten Passwort.

Leute, die Name + E-Mail eines Mitglieds wissen, können das Passwort somit nicht ändern.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 5. Apr 2008, 20:53
Zitat von Matze:
1. "Passwort vergessen" anklicken
2. Name + E-Mail muss eingegeben werden
=> Benutzer erhält eine E-Mail, in der er über einen Link bestätigen muss, dass er es ist. Daraufhin erhält er eine 2. E-Mail mit dem neu generierten Passwort.
Was aber, wenn die 2. EMail nicht zugestellt werden kann ? (z.B. EMail Account voll)
Dann ist Passwort geändert und der Benutzer muss nochmal durch die ganze Prozedur.
Ich denke mein Vorschlag hat den Vorteil, dass nur einmal eine Mail verschickt wird und keine weitere Aktionen nötig sind.
Programmierseitig fällt auch nur ein geringer Aufwand an: 2 weitere Felder (Passwort2 & Passwort2ExpireDateTime) in der Usertabelle und eine kleine Änderung in der Loginprozedur.

Allerdings sind beide Verfahren wohl wasserdicht.

Und dann werfe ich noch ein drittes Verfahren in den Ring:
1. "Passwort vergessen" anklicken
2. Name + E-Mail muss eingegeben werden
3. Benutzer erhält eine EMail mit einem Link, der direkt zu einem New-Passwort-Dialog führt.
Er muss zweimal sein neues PW eingeben und ist dann angemeldet.
  Mit Zitat antworten Zitat
T.E.

Registriert seit: 27. Mai 2007
Ort: Hamburg
284 Beiträge
 
Delphi XE2 Enterprise
 
#8

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 7. Apr 2008, 19:32
Okay! Danke!!
Stimmt das ist unsinnig, wenn die eine geknackt wird dann auch die andere...
Ich werd mal eure beiden Vorschläge ausprobieren

@ Matze: eine Frage hab ich noch: Wie machst du das mit dem Aktivierungs-/Bestäigunslink und der Erkennung?
Gruß Torben
  Mit Zitat antworten Zitat
Benutzerbild von Mao
Mao

Registriert seit: 4. Dez 2006
Ort: Dresden
75 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 7. Apr 2008, 19:39
@sx2008:
Bei dem von Matze beschriebenen Verfahren wird doch auch nur eine E-Mail verschickt. Sollte irgendjemand fremdes Nickname + E-Mail-Adresse des Users wissen, und ein neues Passwort anfordern, müsste mit Klick auf den in der E-Mail enthaltenen Link erst das neu generierte, ebenfalls in der Mail enthaltene Passwort bestätigt werden. Würde der Link nicht aufgerufen, würde sich auch für den "echten" Benutzer nichts an seinem Passwort ändern.
Ein chinesisches Sprichwort sagt: Ein Weiser, der alle Dinge gesehen hat gleicht dennoch nicht dem Manne, der ein einzigstes Ding mit seinen eigenen Händen geschaffen hat.
---
Günstige Domains, Webhosting und Teamspeak-Server - info@max06.de!
  Mit Zitat antworten Zitat
T.E.

Registriert seit: 27. Mai 2007
Ort: Hamburg
284 Beiträge
 
Delphi XE2 Enterprise
 
#10

Re: Homepage: Passwortrecovery -> IDEEN/TIPPS GESUCHT!!!

  Alt 7. Apr 2008, 19:44
wieso wenn ich das hier richtig lese, kriegt der User zwei emails:

Zitat von Matze:
Ich erläutere noch kurz mein Verfahren:

1. "Passwort vergessen" anklicken
2. Name + E-Mail muss eingegeben werden
=> Benutzer erhält eine E-Mail, in der er über einen Link bestätigen muss, dass er es ist. Daraufhin erhält er eine 2. E-Mail mit dem neu generierten Passwort.

Leute, die Name + E-Mail eines Mitglieds wissen, können das Passwort somit nicht ändern.
Oder bin nur zu blöd um das zu verstehen??
Gruß Torben
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz