Hallo Hotti,
Nein. Das Problem ist hier:
my $cryptmail = md5_hex('adresse@email.de');
Die email-Addr kann 'geraten'werden. Oder ein User hat die mal weitergegeben, was auch normal ist.
--- ich verstehe den Punkt nicht. Wenn ein Abmeldelink so ausschaut:
http://www.xyz.de/abmelden.cgi?id=123&mail=c81e728d9d4c2f636f067f89cc14862c
dann kann ich anhand der md5-Prüfsumme den User verifizieren. Er selbst darf sich abmelden.
Bei dem Verändern der id auf 122 in dem Link müßte ja die md5-Prüfsumme zu der für 122 hinterlegten Emailadresse passen. Aber niemand weiß wer 122 ist. Niemand kann die Emailadresse wissen und erst recht nicht die md5-Prüfsumme. Es geht ja darum, daß niemand durch ein simples Verändern des Link auf andere Datensätze zugreifen kann.
Ich könnte natürlich noch etwas in der Art wie
my $cryptmail = md5_hex('adresse@email.de_$anmeldedatum_salz_pfeffer');
nehmen. Das dürfte dann wirklich niemand mehr herausbekommen. Wobei ich mir beim besten Willen nicht vorstellen kann, wie jemand eine zufällige Email-Adresse 'erraten' will. Mag sein, daß dies mit brute_force oder ähnlichen Spezialtricks möglich ist? Wobei dann kann man gleich _alle_ möglichen Prüfsummen durchlaufen lassen. Irgendeine wird irgendwann mal passen. Ich denke den Aufwand wird sich niemand für das Knacken einer Newsletter-Abmeldung machen.
Beruhigte Grüße
Johnny