Hallo Dirk,

Am 2011-07-04 11:01, schrieb dirk_stud...@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"<kiessl...@pluspol.info>
Gesendet: 04.07.2011 08:43:05
An: typo3-german@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@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
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an