Ich benutze Laravels CSRF-Schutz auf meiner öffentlichen Website. Da Laravel jedoch eine Sitzung verwendet, um dies zu verwalten, mache ich mir Sorgen, dass ein Benutzer möglicherweise von seinem Computer weggeht und zu einer Seite zurückkehrt, die er zuvor offen gelassen hat, nur um herauszufinden, dass Ajax-Anfragen nicht funktionieren. Die Ajax-Anfragen funktionieren nicht, weil die Sitzung abgelaufen ist (und das Token nicht mehr validiert wird). Wenn diese Benutzer angemeldete Benutzer wären, könnte ich sie einfach zurück zur Anmeldeseite umleiten. Da sie öffentliche Benutzer sind, muss der Benutzer die Seite aktualisieren, damit sie wieder funktioniert (peinlich).Wie erstellt und prüft Laravel ein CSRF-Token?
Oder liege ich falsch? Würde das CSRF-Token immer noch von Laravel validiert werden (selbst nachdem die Sitzung abgelaufen ist, sendet die Seite immer noch das Token ... aber was wird Laravel damit machen?). Eine optimale Lösung wäre, die Token teilweise basierend auf einem Zeitstempel zu haben, so dass wir die Token-Ablauflimits abgesehen von den Sitzungszeitgrenzen geben könnten. Ich könnte meine CSRF-Token für 2 Tage halten (also kehren nur die Benutzer, die 2 Tage weglaufen, zu einer toten Seite zurück).
Letztendlich bringt mich das auf meine Frage: Wo ist der spezifische Code im Laravel-Framework, der das behandelt? Ich versuche gerade, es zu lokalisieren. Gibt es auch einen einfachen Tropfen Ersatz, den ich machen kann, oder bin ich links, um meine eigene Version von csrf_token();
zu erstellen, um auf meinen Seiten auszugeben, und dann würde ich meinen eigenen Routenfilter erstellen müssen, um damit zu gehen.
Ah ... ich war dieser Codes bewusst, aber ich war auf der Suche tiefer in den Rahmen tatsächlich zu sehen versuchen, welche Berechnung getan wird. Aber Sie haben recht, wir können natürlich sehen, dass hier Sitzungen für CSRF verwendet werden. Das lässt mich denken, dass die typische Verwendung für CSRF-Schutz für eingeloggte Benutzer ist.Jedoch sende ich JSON in verschiedenen öffentlichen Bereichen meiner Website aus, die ich nicht leicht von anderen packen möchte, die versuchen könnten, die Site zu benutzen, als ob es eine öffentliche API wäre. – prograhammer
Und ... Sie haben mir wirklich geholfen, indem Sie mich daran erinnert haben, dass wir diese Helfer außer Kraft setzen können. Also ist die sichere Wette für mich, das neu zu schreiben und diese Token aus der Sitzung zu holen. Danke nochmal Antonio! – prograhammer