Es allen Recht machen: Cookies, W3C, WAI, CSS, JS

Die User-Agent-Kennung kann als zusätzliches Authentifizierungsmerkmal genommen werden.
 
Ich stimme da Gumbo voll zu, die IP Adresse als Erkennungsmerkmal zu nutzen, ist einfach nicht möglich.

Letztens war ich zu Besuch bei einem Bekannten in einem Studentenwohnheim, dort wird sich die Unileitung geteilt... Sprich auf knapp 300 Studenten kommen 2-3 IP Adressen.
Ich loggte mich mit einem Notebook über das W-Lan ein und dachten wir spielen eine Runde ein kleines Browsergame...
Leider konnten wir nichmals einloggen, da anscheinend bereits ein anderer Student online war... Sprich theoretisch wurden ca. 299 Studenten ausgeschlossen, weil ein einziger am spielen war.

Eine solche Technik ist einfach nicht mehr zeitgemäß.

Allerdings ist das grundsätzlich ein schwieriges Thema, da man besonders bei themenspezifischen Homepages eine Zielgruppe hat.

Schaut man sich z. B. eine Gamer Seite an, so hat man dort eine gewisse Zielgruppe, mit relativ gleichen Erkennungsmerkmalen. (folgend ein erdachtes Beispiel)

  • FireFox 3 (aufgrund der vielen Addon Möglichkeiten)
    Meist in einer ziemlichen Standardkonfiguration was den User-Agent und die akzeptierten Sprachen bzw. Zeichensätze angeht.
  • Bildauflösungen von 1280x1024 bis 1680x1050
  • Betriebssystem WinXP bzw. Vista

Wie möchte man bei einer Großzahl von solchen Ähnlichkeiten einen Benutzer gewissenhaft identifizieren?

Ohne Benutzeraccount eigentlich gar nicht.
Und dort würde ich dann aus Sicherheitsaspekten auch nur Cookies verwenden. Wer keine Cookies akzeptiert, kann eben auch nicht auf gewisse Angebote der Webseite zugreifen.
 
Session über GET sicher machen

Danke nochmal an Gumbo für die Ergänzung.

Und dann hab ich natürlich noch etwas vergessen.
$_SERVER["HTTP_REFERER"] sagt einem wo der Besucher her kommt. Wird also auf eine Session zugegriffen in der ein Benutzer angemeldet ist und der Referer ist:
  • leer,
  • von einer fremden Seite
  • oder entspricht der eigenen URL ($_SERVER["SERVER_NAME"]) aber hatte eine andere Session-ID zuvor
dann scheint etwas nicht zu stimmen und man kann nach dem Passwort fragen.

Umgehen kann man den letzten Punkt indem man einfach aktualisiert und die Seite nochmals aufruft mit gleichem Link. Eine Variable wie $_SESSION["passwort_nochmal_eingeben"] wäre quatsch, weil der eigentliche Benutzer vielleicht auch noch auf der Seite ist und diese Aufforderung auch kriegt -> er gibt das Passwort ein und die variable ist wieder weg.

Daher sollte diese Variable bestehen bleiben. Sobald man das richtige Passwort eingibt (kann ja theoretisch nur von dem richtigen Benutzer sein) wird $_SESSION in irgendeinem Array ($aTmp) gespeichert, die alte Session aufgelöst (session_destroy) und eine neue Session begonnen und die alten Werte übertragen ($_SESSION = $aTmp). (Alles in dem "Wieder-Anmelde-Script")

Das Thema ist geschlossen aber: Was sagt ihr dazu?

Zusammenfassend:
  • IP-Adresse - $_SERVER["REMOTE_ADDR"]
  • Browser und Betriebssystem - $_SERVER["HTTP_USER_AGENT"]
  • Herkunft prüfen- $_SERVER["HTTP_REFERER"] (leer, nicht von eigener Seite oder von eigener aber mit zuvor anderer SessionID)
  • Bei "Neulogin" alte Session löschen (session_destroy())

Und ich wette in der eile hab ich wieder was vergessen. Aber das sollte der Sicherheit genügen.
 
Zurück