PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Login


Gweilo
25.10.2002, 19:41:15
Was ist die Effizienteste möglichkeit einen Login zu machen (der Username sollte nicht verloren gehen)
mit:
- Cookies
- über die URL oder POST mit"schleppen"
- session?

wie wird das normalerweise gemacht? mit Cookies und verschlüsseltem Passwort?

mfg,
Gweilo

Ben20
25.10.2002, 19:44:05
Sessions ist am einfachsten. Per URL manuell weitergeben hat den Nachteil, dass man das weitergeben gern mal vergißt und das es nicht sehr sicher ist. Cookies werden nicht von jedem aktzeptiert.

Wie Du das machst bleibt dir überlassen - das Passwort weiterzugeben widerstrebt mir immer ein wenig. Ich mach das mit einer Zufallszahl die bei korrekten Login in ein entsprechendes Feld des Userdatensatz in der DB geschrieben wird. Die Zahl gebe ich mit Sessions weiter und überprüfe auf allen Seiten ob die Nummer in der DB vorkommt. Falls ja ist der User eingeloggt falls nein eben nicht!

Gweilo
28.10.2002, 19:05:51
[eintrag konnte nicht gelöscht werden]

Gweilo
28.10.2002, 19:14:54
Wie genau soll das mit den zufallszahlen gehen. das verstehe ich nicht ganz.

Wieso eine Zufallszahl? geht das nicht auch ohne?

hier ist wie ich das programmieren würde:

- beim einloggen SessionsID erstellen, diese in einer Datenbank unter dem usernamen speichern
- bei einem erneuten Seitenaufruf nach der $PHPSESSID; SessionsID fragen und in der Datenbank nachschauen welcher User zu dieser SessionsID gehört. (falls es nicht gefunden wird, ist er nicht eingeloggt)
- Somit weiss das programm, welcher User eingeloggt ist.

Gibt es probleme mit diesem Vorgehen? oder verbesserungen? Wieso noch eine zweite Zufallszahl, wenn $PHPSESSID; bereits eine Zufallszahl ist.

mfg,
GWeilo

Ben20
29.10.2002, 13:41:25
So kannst Du das auch machen. Die zweite Zufallszahl macht das Ganze noch einen Tick sicherer.

Gweilo
29.10.2002, 20:29:23
und wie soll ich diese zweite zufallszahl erneut reproduzieren?
wenn ich den random mit der Zeit initialisiere zB geht das net, da es ändert. und den generator mit was anderem zu initialisieren macht auch keinen sinn, da es entweder konstant bleibt, oder immer eine andere Zahl herauskommt. die einzige möglichkeit wäre zB mit der sessid oder ip adresse zu initialisieren.
aber was soll das nun an sicherheit bringen? es ist ja sozusagen bloss eine (veränderte) "kopie" der ursprünglichen Zahl.

Ben20
30.10.2002, 15:27:36
Die Zufallszahl gibts Du als Variable der Session weiter - so taucht die "Loginnummer" nicht oben im Browserfenster auf wie das bei einer Session der Fall sein könnte - wie gesagt, du kannst Dir die Zufallszahl auch sparen und nur über die SessionID gehen.

Ailana
31.10.2002, 09:36:46
Was ihr davorschlagt, hört sich sehr interessand an. Da ich nochj php lerne und ich noch nie einen login erstellt habe, möchte ich mich jetzt mal an einen Login versuchen.Doch leider habe ich keine Ahnung wie das script aussehen soll, geschweige denn was ich das programmiernen soll. Könnte mir einer mal ein script schicken, um mal zu erfahren wie der grobe aufbau zu einem relativ sicheren login aussehen könnte?

Danke im Vorraus Ailana

Gweil0
01.11.2002, 17:54:14
am besten strukturierst du deine Textdatenbank so ungefähr:

loginname|verschlüsseltespasswort|sessid|zeit|sonstigeinfos
loginname2|verschlpass|||
user7|b1lA23bL9a|||bla

benutze dafür Explode und implode und schreibe die infos mit den von Progman beigefügten Infos

beim Einloggen muss ein test stattfinden, ob loginname zum verschlüsselten Passwort passt.

Wenn ja muss die SessionsID angelegt (bzw. gespeichert) werden (und die aktuelle Zeit des einloggens)

Wenn nun jemand auf der Seite surft kannst du nach seiner SessID in der Datenbank suchen, wenn sie nicht vorkommt ist er nicht eingeloggt. Wenn ja, schaust du, welchem User sie zugewiesen ist.

Die Zeit benötigst du, um "alte" SessionsID's zu löschen. dh. wenn sie mehr als 3 stunden (zB) nicht geändert wurden kannst du die dazugehörende SessId löschen.

am besten schaust du dir alle nötigen befehle genau an, dann sollte des schon klappen