Client eindeutig identifizieren (ohne session)

mille

Erfahrenes Mitglied
Hallo.

In einem anderen Thread hatte ich eine Frage danach, wie ich eine PHP SESSID nicht per HTTP GET übergeben muss.
Beim lesen momentan aktiver Threads wurde auf HASHing von User-Daten eingegangen.
Nun möchte ich das entsprechende Thema nicht mit meiner Frage zumüllen, da sie doch etwas spezialisierter ist.

Ich frage mich, wie ich einen User eindeutig identifizieren kann...?
Im entsprechendne Thread fand ich die Lösung einen HASH von HTTP_USER_AGENT, IP, ACCEPT_LANGUAGE zu bilden.
Das halte ich noch nicht für ganz ausreichend, da in einem Wohnheim von deutschen Linux-Freaks die Wahrscheinlichkeit sehr hoch ist, dass 2 User über die gleiche IP, mit gleicher BrowserSprache und gleichem Browser surfen.
Insofern frage ich mich, wie ich die Wahrscheinlichkeit einer Kollision noch weiter verringern kann?

Habt ihr noch Ideen?
Der Port, über den der Client mit dem Server kommuniziert, fällt mir spontan als weiteres Alleinstellungsmerkmal ein.
Sonst noch was?

Grüße

// edit:
Gut, der Remote_PORT ändert sich permanent (zumindest local) und fällt damit schonmal raus? :-/
 
Zuletzt bearbeitet:
Ohne zusätzlich Sessions oder einen Cookie zu benutzen ist ein Client m.M.n. nicht eindeutig identifzierbar.
 
Was willst du genau machen? Sollen nur die User die zurzeit deine Seite besuchen voneinander getrennt werden, oder willst du das php weiss: "Aha, der User war schonmal hier" ..
?
 
Setze auf Sessions. Eine Alternative, die sicher und eindeutig ist, gibt es nach meinem Wissensstand bei PHP nicht. Und Header sind geduldig, lassen sich manipulieren, genauso wie bestimmte $_SERVER-Variablem usw.
 
Du willst sicherlich etwas sichereres als Sessions (unsicher da sowohl GET-Parameter als auch Cookies manipulierbar sind) konzipieren.
Dazu willst Du aber wahrscheinlich weiterhin Daten clientbezogen auf dem Server zwischenspeichern koennen, richtig?

Mein Vorschlag dazu ist: Erweitere die in PHP gegebenen Sessions. Du kannst eigene Funktionen fuer das Session-Handling registrieren, und diese koennen auch zusaetzliche Merkmale des Clients nutzen um die Zuordnung SessionID<->Client sicherer zu gestalten.
Ich nutze in meiner neuesten Klasse, welche Sessions ueber eine SQL-Datenbank implementiert , nicht nur die SessionID zur Identifikation, sondern auch die IP und den User-Agent.
Somit kann zwar ein User der ueber die gleiche IP und den gleichen User-Agent unterwegs ist die Session uebernehmen, ein User mit anderer IP und/oder anderem User-Agent bekommt mit der selben SessionID trotzdem seine eigene Session.
 
Die IP-Adresse zu nehmen, ist keine gute Wahl. Denn diese kann bei großen Internetanbietern bereits von einer Anfrage zur anderen unterschiedlich sein.
 
Zurück