Problem Szenario:Laravel 4: Verhindern, dass mehrere Formularübermittlungen - CSRF-Token
Ich bin ein Blog mit Laravel 4. Die Form schaffen, die für die Schaffung neuer Blog-Beiträge verantwortlich ist durch den Bau in CSRF gesichert Schutz (Laravel Docs: CSRF Protection).
Alles funktioniert soweit, aber es scheint, dass Laravel das csrf-Token nicht bei jeder Anfrage aktualisiert.
Das Problem, das ist auftritt, wenn der Benutzer die Zurück-Schaltfläche des Browsers zu dem eingereichten Formular zurückzukehren trifft, ist die eingegebenen Daten bestehen bleiben und der Benutzer in der Lage „erneut einreichen“ das Formular aus. Dies könnte eine offene Tür für Spammer schaffen.
Normalerweise wird dies durch das CSRF-Token verhindert, da es bei jeder Anfrage aktualisiert wird, aber Laravel scheint es nicht so zu machen.
Ich benutze die Laravel "Resource Controller" -Ansatz (Laravel Docs: Resource Controllers), um die Form und Blogpost Ansichten zu behandeln. Außerdem benutze ich Laravels Input Validator, bevor ich die übergebene Eingabe in der Datenbank (MySQL) ablege.
So kamen die folgenden Ideen:
irgendwie 4 zwingen Laravel die csrf automatisch bei jeder Anfrage ein anderes Token
erzeugen zu regenerieren und schließen sie in die Form manuell
Speichern Sie einen Zeitstempel der Formularunterordnung in der Benutzersitzung (PHP oder Datenbank) und drosseln Sie ne w Formulare auf einer Zeitbasis
Persönlich bevorzuge ich die erste Idee, aber leider konnte ich nicht einen Weg zu zwingen Laravel verhalten finden, wie ich es sein, will die „Illuminate“ selbst ohne Hacking (welches ich "wie es ist" beibehalten möchte, um laravel ohne "stress hoff" ^^) zu aktualisieren.
Was würden Sie empfehlen?
Wie haben Sie das Problem selbst gelöst?
Ich habe gerade überprüft, wie Stackoverflow das Formular auf Griffe „history.back()“: Auf Wieder äussern die gleichen Daten, es sagt "Eine Frage mit diesem Titel existiert bereits; bitte seien Sie spezifischer." und "Sie können nur einmal alle 20 Minuten posten". Ist eine Option, aber nicht wirklich, was ich will ... –