ca. 10 User bekommen eine email mit dem Link zu der gegen alle anderen Cracker... und böswilligen User zu schützenden Seite.
Der link sieht so aus: http://www.server.de/seite.php?id=123&user_id=12312kj3lk12j39023j12lkj3lkj12
id bechränkt die zusammengehörigen User (ca. 10), und user_id ist ein MD5-String den ich wie folgt erzeuge(PHP):
srand ((double)microtime()*1000000);
$randvalue = rand();
$user_id = urlencode(md5($randvalue.$email_adresse));
Ich hatte mir das jetzt mal so gerechnet, wenn jemand anders die id errät(ist ja nicht ganz so schwer), dann braucht er viel Glück eine gültige user_id zu erraten:
Warum so kompliziert? Da kannst Du Dir auch eine bel. Zeichenkombination ausdenken.
MD5(...) ist genau so leicht oder schwer zu erraten wie
"j3uq91qmaidu8wjwshsgfgheu3h" was ich mal so eben selber tippe.
Sinn machen würde MD5 nur so:
Du und der User tauschen einen Secret Key aus (Telefon, PGP etc.).
Der User sendet Username und MD5($username . $secretkey).
Du checkst, ob Du bei MD5($username . $secretkey) dasselbe rausbekommst, wenn ja => authorisiert.
Und das ist auch die einzige Schwachstelle an der ganzen Sache, die Klartext-Email, aber das Problem wird man wohl immer haben, aber wenn jemand der ein Interesse hat da einzubrechen bereits in der Lage ist entweder bei mir oder bei dem betroffenen User emails mitzulesen ist eh fast alles verloren!
Jawoll.