MudGuard: Erneutes senden der Formular-Informationen verhindern

Beitrag lesen

Hi,

Kannst du mir bitte eine genauere Anelitung geben.

z.B.:

aus timestamp + ip + Zufallszahl + ... eine eindeutige Id generieren - der Aufbau sollte nicht so einfach erkennbar sein (s.u.)

Diese z.B. in einer Datenbank samt Zeitpunkt  der Speicherung ablegen.
Außerdem die id in ein hidden-Feld des Formulars reinschreiben.

Wenn die Formulardaten wieder ankommen, prüfen, ob die id in der Datenbank vorhanden ist.
Falls ja: id aus Datenbank löschen, Formulardaten auswerten.
Falls nein: Fehlermeldung ausgeben, daß Formular schon mal ausgewertet wurde.

Gelegentlich noch die ids aus der Datenbank löschen, die ein gewisses (von Dir festzulegendes) Alter (z.B. 1 Tag) überschritten haben...

Man doch auch den Button nach dem Anklicken verschwinden lassen oder?

Das funktioniert nur, wenn Javascript aktiviert ist.
Es verhindert auch nicht, daß z.B. auf der folgenden Seite ein Refresh ausgeführt wird usw.

Obige Methode verhindert z.B. auch, daß irgendein Script Kiddie Schaden anrichten kann (außer dem Traffic/Serverauslastung), indem es denselben Request zigmal schickt - ausgewertet wird nur einmal.

Den Button wegzunehmen mag zwar einige Doppel-Absendungen verhindern, aber längst nicht alle.

Das Problem ist ein serverseitiges (Mehrfachauswertung von Formulardaten), sollte also auch serverseitig gelöst werden.

cu,
Andreas

--
Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/