Benutzer eindeutig identifizieren
Um einen Benutzer eindeutig identifizieren zu können, kann man man sich das Superglobale Array $_SERVER zunutze machen.
Folgende Werte sind für uns interessant:
- $_SERVER[„REMOTE_ADDR“]
- $_SERVER[„HTTP_USER_AGENT“]
- $_SERVER[„REMOTE_PORT“]
Will man einen eindeutigen Hash erzeugen, kann man folgendes Beispiel anwenden:
$hash = sha1($_SERVER["REMOTE_ADDR"]."-".$_SERVER["HTTP_USER_AGENT"]."-".$_SERVER["REMOTE_PORT"]);
echo "Du hast den Hash".$hash;
Was bringt das?
Man kann mit diesem Hash z.B. verhindern, dass ein Benutzer von einem PC aus mehrere Beiträge in einem Gästebuch schreibt. Natürlich kann es einfach den Browser wechseln oder den Router neustarten, aber das dürfte den meisten zu viel Aufwand sein.
Wie?
Den String einfach in eine Datenbank speichern und dann immer prüfen, ob er schon in der DB existiert. Wenn ja, dann Zugriff verweigern.
Geht auch md5?
Ja, auch md5 geht. Der Hash von MD5 ist halt kürzer und somit wird die Wahrscheinlichkeit von Kollisionen größer.
[…] Benutzer eindeutig identifizieren (43) […]
[…] Benutzer eindeutig identifizieren (51) […]
$_SERVER[„REMOTE_PORT“] ändert sich gewöhnlich bei jeder Anfrage, deshalb ist es leider nicht zu verwenden.
Da hast Du Recht. Keine Ahnung, warum ich das beim Verfassen des Artikels übersehen habe. Danke für den Hinweis!