Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

autologin

Empfohlene Antworten

Veröffentlicht

wie kann man mit php einen autologin per cookie realiesieren?

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

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...

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? :D

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

Original geschrieben von Jaraz

Und wie dann? :D

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!

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

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 ;)...

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

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

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...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.