Einzelnen Beitrag anzeigen
Alt 19.04.2006, 19:49   #8 (permalink)
Atomic
Administrator 10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Atomic
 
Registriert seit: 21.02.2003
Ort: Köln
Alter: 38
Beiträge: 5.162
Atomic eine Nachricht über Skype™ schicken
Standard AW: Mehrfachauswahl Loginscript

Überprüfen ob die Benutzerdaten stimmen ist ja nur einerlei.
Herausfordernd wird es erst wenn es darum geht den Benutzer über mehrere Seiten hinweg angemeldet zu halten bei möglichst geringem Sicherheitsrisiko.

Hier mein Beitrag zum Thema "Sichere Benutzer-Authentifizierung":

Wir haben eine Tabelle für die Benutzerdaten und eine Tabelle für die "Sessions".
In der Usertabelle speichern wir:
- Username
- E-Mail
- Passwort ( ABER EINWEG-VERSCHLÜSSELT !!! )
- ID (Jede Tabelle sollte eine haben! Warum eine ID? Google im Internet!)

Dann haben wir ein Login-Formular.
Dort gibt es ein Feld für Benutzername und ein Feld für Passwort.
Außerdem eine Checkbox für "Dauerhaft eingeloggt bleiben?".
Und ein Link "Lost passwort".

Der Benutzer logt sich ein in dem er sein Passwort eingibt + Benutzername
Daraufhin wird überprüft ob der Benutzer existiert und wenn ja wird wird das eingegebene Passwort EINWEG-VERSCHLÜSSELT und mit dem bereits verschlüsselten Passwort in der Usertabelle in der Zeile des Benutzers verglichen.

Wollte der Benutzername falsch sein wird nicht ausgegeben "Falscher Benutzername" sondern "Benutzername ODER Passwort ungültig". Das ist ABSICHT.

Hast der Benutzer die Checkbox "Dauerhaft eingeloggt bleiben?" angeklickt so wird das Passwort in verschlüsselter Form als Cookie auf dem Rechner des Benutzers abgelegt.

Sollte er es nicht abgelegt haben so wird eine Zeichenkette genannt "Session-ID" erzeugt, welche in der Sessiontabelle abgelegt wird zusammen mit den Informationen User-ID (um zu wissen wlecher eintrag in der usertabelle), IP-Adresse (damit der benutzer nicht "versehentlicht" seine Session-ID irgendwo in einem forum oder so postet) und der Zeit an dem der benutzer zum letzten mal eine Seite aufgerufen hat.
.... an dieser Stelle verweise ich dich auf das Internet.. es gibt tonnenweise Artikel über User Authentication mit Session-ID

Natürlich sind beide Methoden nicht sicher.
IP-Adressen lassen sich genauso fälschen wie Cookies abgefangen werden können.
Anmerkung: Die Cookie Methode ist um einiges unsicherer, wenngleich auch bequemer

Die Sicherheit entsteht erst dadurch das nie das Passwort gspeichert wird.
Sollte jemand auf den Account zugriff bekommen hat er nur solange zugriff bis die session-id abläuft oder der Benutzer sien Passwort ändert.

Warum?
Weil man zum ändern des Passwortes das alte angeben muss.

Und was macht man wenn man es vergessen hat?
Dann klickt man auf den Link "Lost Passwort" und gelangt zu einem Formular mit den Feldern
- Username
- E-Mail
(theoretisch reicht e-mail oder username, aber wenn man den benutzer vor unnötig e-mail spam schützen will macht man es besser so umständlich wie möglich.. hier setzen auch einige websites mit der "Sicherheitsabfrage" nach)

Daraufhin bekommt der Benutzer ein neues Passwort zugeteilt.

Warum nicht das alte?
Weil es nirgendwo hinterlegt ist. Gespeicht wurde ja nur das verschlüsselte.

Das ist auch wichtig damit die Accounts geschützt bleiben sollte jemand die Datenbank hacken.

==================

Bevor du loslegst mal dir bitte zuerst mit Hilfe einer Software wie DIA auf wie das ganze funktionieren soll!
So geht das: http://de.wikipedia.org/wiki/Programmablaufplan
__________________
https://savetheinternet.info/
Atomic ist offline   Mit Zitat antworten