Token

Dieser Schutz besteht aus mehreren Elementen: einerseits aus einem Hidden-Fied, welches im Formular mitgeführt wird und anderseits aus einer Session.
Der Token besteht aus einem zufälligen String, der in der Session speichert und im Hidden-Field gelegt wird.
Nach dem Abschicken des Formulars werden die 2 Werte miteinander verglichen.
Wenn diese zusammenpassen ist der Token gültig.
Um einen Reload-Schutz zu bewerkstelligen, löscht man den Session-Wert, so wird der erneute Vergleich negative und man kann so auf diesen reagieren.

Diese gesamte Funktionalität legt man am besten in eine Klasse.
Wenn mehrere Formulare auf einer Seite vorhanden sind, verwendet man für alle denselben Token.