ckeen Geschrieben 21. Juli 2002 Geschrieben 21. Juli 2002 wie kann man mit php einen autologin per cookie realiesieren? Zitieren
robotto7831a Geschrieben 21. Juli 2002 Geschrieben 21. Juli 2002 Hallo, Du müsstest ein Cookie auf den Clientrechner ablegen, in dem Username und ein verschlüsseltes Passwort steht. Beim nächsten Aufruf der Seite müsste PHP nach einem Cookie suchen und wenn vorhanden es auslesen. Danach müsste PHP überprüfen, ob Username und Passwort passen und ob eventuell der User ein Autologin gewünscht hat. Ansonsten soll das Cookie abgelehnt werden. Wenn Username und Passwort stimmen dann soll PHP den User einloggen. Frank Zitieren
beetFreeQ Geschrieben 22. Juli 2002 Geschrieben 22. Juli 2002 Eine andere Möglichkeite wäre auch, eine ID im Cookie abzulegen, die man dann mit den IDs in der Benutzerdatenbank abgleicht. Dabei sollte die ID aber natürlich einzigartig, möglichst lang und zufällig erstellt sein und außerdem nie per Post oder Get-Variablen übergeben werden, damit sie nicht in falsche Hände gerät... Zitieren
Jaraz Geschrieben 22. Juli 2002 Geschrieben 22. Juli 2002 Original geschrieben von beetFreeQ und außerdem nie per Post oder Get-Variablen übergeben werden, damit sie nicht in falsche Hände gerät... Und wie dann? Imho gibt es nur die 2 Möglichkeiten. Wobei Post die elegantere aber nicht unbedingt sichere Möglichkeit wäre. Wenn die Übertragung von Daten sicher sein soll, kann man eigentlich nur auf SSL zurück greifen. Gruß Jaraz Zitieren
beetFreeQ Geschrieben 22. Juli 2002 Geschrieben 22. Juli 2002 Original geschrieben von Jaraz Und wie dann? Garnicht! Man kann ja entweder andere Daten per Post oder Get übergeben oder man benutzt Sessions. Die werden ja nie an den Client übertragen und sind somit auch i.A. sehr sicher! Ich hab's so gelöst: Auf jeder Seite wird geprüft, ob der Benutzer schon eingeloggt ist, indem die Session-Variablen überprüft werden. Sind keine vorhanden, dann ist niemand eingeloggt und es wird geprüft, ob ein Cookie vorliegt. Wenn ja, wird die ID daraus ausgelesen und der passende Datensatz aus der Tabelle geholt. Die benötigten Werte schreib ich dann einfach in die Session. Fertig... Um auf den Seiten zu arbeiten arbeite ich mit der jeweiligen Session wenn's um den grad auf der Seite surfenden Benutzer geht, bzw. bei anderen Benutzern dann mit einer anderen einfachen ID aus der Datenbank! Es gibt also zwei IDs pro User: Eine sichere, die nur zum Autologin eingesetzt wird, und eine einfache, die für alles andere benutzt wird! Zitieren
Jaraz Geschrieben 22. Juli 2002 Geschrieben 22. Juli 2002 Original geschrieben von beetFreeQ Wenn ja, wird die ID daraus ausgelesen und der passende Datensatz aus der Tabelle geholt. Also hast du die ID doch übergeben. Gruß Jaraz Zitieren
beetFreeQ Geschrieben 22. Juli 2002 Geschrieben 22. Juli 2002 Original geschrieben von Jaraz Also hast du die ID doch übergeben. Gruß Jaraz Aber nur an das Cookie! Die ID wird nur einmal beim Erstellen des Cookies direkt im Script aus der Datenbank in das Cookie geschrieben, und danach nur noch daraus ausgelesen! Der Benutzer selbst kann dann zwar seine eigene ID im Cookie sehen und ändern, aber da diese halt zufällig erstellt wird, ist es extrem unwahrscheinlich, daß er beim Ändern die ID eines anderen Benutzers erwischt! Zum Erstellen der ID benutze ich folgenden Code: $uniqID = md5(uniqid(rand())); Damit wird erst eine Zufallszahl generiert, die als Basis für die Funtion uniqid dient, und die daraus resultierende ID wird nochmal per MD5 verschlüsselt! Daraus ergibt sich eine 32stellige ID wie z.B. 701d6f31be3ea06ed2bea8e61eb9448f , und die soll erstmal einer rausbekommen ... Zitieren
Jaraz Geschrieben 22. Juli 2002 Geschrieben 22. Juli 2002 Das ist mir alles schon klar. Es ging mir nur darum das du geschrieben hast mal sollte die Werte nicht per Post oder Get senden. Es bleibt dir aber nichts anderes übrig, wenn man einen Autologin über ein cookie realisieren will. Dadurch das du die ID sendest, kann jemand anderer die ID abfangen. Bei Get nur durch einen Blick in die Log Dateien von einem Proxy. Post ist etwas aufwendiger aber auch nicht unbedingt sicher. Das gleiche gilt für Passwort und Usernamen bei der Basic Anmeldung. Eine sichere Anmeldung kann also nur über eine sichere Verbindung realisiert werden (SSL). Was bei einem Board natürlich meistens übertrieben ist. Gruß Jaraz Zitieren
shad0w Geschrieben 22. Juli 2002 Geschrieben 22. Juli 2002 guck ma auf www.phpbuilder.com in den articles .. da gibt es einiges zum thema session management, datenbank gestuetzes session management und cookies ... so long Zitieren
beetFreeQ Geschrieben 23. Juli 2002 Geschrieben 23. Juli 2002 Original geschrieben von Jaraz Das ist mir alles schon klar. Es ging mir nur darum das du geschrieben hast mal sollte die Werte nicht per Post oder Get senden. Es bleibt dir aber nichts anderes übrig, wenn man einen Autologin über ein cookie realisieren will. Dadurch das du die ID sendest, kann jemand anderer die ID abfangen. Bei Get nur durch einen Blick in die Log Dateien von einem Proxy. Post ist etwas aufwendiger aber auch nicht unbedingt sicher. Das gleiche gilt für Passwort und Usernamen bei der Basic Anmeldung. Eine sichere Anmeldung kann also nur über eine sichere Verbindung realisiert werden (SSL). Was bei einem Board natürlich meistens übertrieben ist. Gruß Jaraz Ich meinte damit das Senden zwischen den Seiten (z.B.) um ein Userprofil über einen Link anzuzeigen, mit dem die ID übergeben wird. Hier wäre das auslesen nämlich schon einfacher, da entweder die Daten in der URL übergeben werden oder u.U. in versteckten Formularfeldern im Quelltext ersichtlich sein könnten. Daß das Cookie zum Senden und empfangen per Post übergeben werden muß, ist mir klar, aber ich hab das mal ausgeklammert, weil das eh unumgehbar ist! Zur weiteren Sicherheit könnte man aber hier auch gleich nach dem Autologin eine neue ID generieren, die wwieder im Cookie und in der Tabelle gespeichert wird. Daß man solche Daten über Auslesen der Logs bekommen kann, ist mir klar, aber man sollte hoffentlich davon ausgehen können, daß der Provider den Server ausreichend abgesichert hat. SSL ist sicherlich übertrieben, aber ich bin mit meiner Lösung schon sehr zufrieden ... BTW: Welche anderen sinnvollen Möglichkeiten für einen Autologin gibt's denn noch so? Abgleichen der IP wäre ja nicht so sinnig... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.