[TYPO3-german] Formhandler: Hash/Zufallswert erstellen

Reinhard Führicht rf at typoheads.at
Mon Jul 4 11:35:18 CEST 2011


Hallo Dirk,

Am 2011-07-04 11:01, schrieb dirk_studivz at web.de:
> Hallo Andreas,
>
> danke für deine Antwort!
>
> Hmm. Ich dachte mir eher, dass ich den Code abspeichere (neben der ID des Datensatzes). Wenn der Benutzer dann auf den gesendeten Link klickt hätte ich eine Seite (inkl. eigener Logik) die in der DB sucht, bei welchem Eintrag der AuthCode vorhanden ist und dann diese Daten läd.
>
> Meiner Meinung nach ist es recht witzlos ansonsten überhaupt den AuthCode zu erstellen, wenn einfach nur die User-ID sha1 oder md5 umgewandelt wird (und selbst wenn es eine eigene Verschlüsselung ist, wenn jedem die Verschlüsselung durch Download der Extension frei zugänglich wird kann auch jeder falsche Email-Adressen angeben und per Skript dann die IDs von z.B. 1 - 1.000.000.000 auf die Seite abfeuern und so seinen Account freischalten (und alle anderen noch nicht freigeschalteten zwischen 1 und 1.000.000.000 auch).
>
> Da muss ich schon sagen fände ich eine Zufallszahl die als AuthCode generiert und in der DB gespeichert wird sinnvoller.
>
> Vielleicht gibt es ja aber auch noch andere Ideen oder ich habe etwas falsch verstanden (->  irgendwelche Angaben des Benutzers (die UID aus der DB?!) werden verwendet um den AuthCode zu erzeugen?!).
>
> Danke und Grüße,
>
> Dirk
>
> -----Ursprüngliche Nachricht-----
> Von: "Andreas Kiessling"<kiessling at pluspol.info>
> Gesendet: 04.07.2011 08:43:05
> An: typo3-german at lists.typo3.org
> Betreff: Re: [TYPO3-german] Formhandler: Hash/Zufallswert erstellen
>
>> Hi,
>>
>>> Ok, es erscheint unlogisch, warum ich GenerateAuthCode NACH dem Finisher_DB aufrufe, aber laut Doku muss man das ja, wenn man den Code per Email versenden möchte (nach Finisher_DB und vor dem Email-Versand). Das geht halt lokal auf meiner VMWare nicht, weshalb ich auch nicht schauen kann, ob er denn überhaupt erzeugt wird.
>>> GenerateAuthCode auch schon als 1 { ... } vor den Finisher_DB gestellt.
>>
>> Wo kriegst du die uid des Datensatzes her, wenn du ihn nicht vorher
>> gespeichert hast?
>>
>> Wozu willst du den authCode speichern? Der Link in deiner Mail muss ja
>> die uid UND den Code enthalten ->  beim Aufruf der Seite erzeugst du den
>> Code neu über die übermittelte uid und vergleichst ihn mit dem authCode
>> aus dem Link.
>>
>> HTH,
>> Andreas
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Der Code generiert sich aus dem gesamten Eintrag in der Datenbank.
Also zuerst werden die Daten in die DB geschrieben, dann der 
Finisher_GenerateAuthCode aufgerufen. Der selektiert sich die Daten, 
serialisiert sie und erzeugt einen md5-Hash.

Diesen kannst du als Parameter eines Auth-Links verwenden und zusätzlich 
noch die UID des Eintrags übergeben.

Zur Validierung selektierst du den Eintrag aus der DB und vergleichst 
die beiden Hashes.

Hier gibts z.B. einen Versuch, den Hash mit einem PreProcessor zu 
validieren. Die Klasse wurde aber noch nicht in den Formhandler integriert:
http://forge.typo3.org/attachments/17519/13978_v2.patch

Wenn du einen anderen Weg bevorzugst, könntest du einfach den 
Finisher_GenerateAuthCode erweitern und die Methode zum Generieren des 
Codes überschreiben.

Viele Grüße,
Reinhard


More information about the TYPO3-german mailing list