Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

Antworten
Benutzeravatar
mirko
Beiträge: 21399
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von mirko » 21.09.2018, 17:28

adelphi hat geschrieben:
21.09.2018, 17:09
Prima, funktioniert. Genau so hab ich mir das vorgestellt. Übernimmst Du das in der nächsten Release?
ja sicher doch

adelphi
Beiträge: 62
Registriert: 29.10.2012, 14:57

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von adelphi » 21.09.2018, 17:09

>das funktioniert aber nur in neueren Browsern und auch nur wenn man 1x auf Zurück/Vorwärts klickt, im Firefox nur über den Button nicht über das Kontextmenü

Prima, funktioniert. Genau so hab ich mir das vorgestellt. Übernimmst Du das in der nächsten Release?

Benutzeravatar
mirko
Beiträge: 21399
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von mirko » 21.09.2018, 11:56

adelphi hat geschrieben:
20.09.2018, 12:32
>Der Zurück-Button im Browser ist komplett verboten, das durfte man vorher schon nicht, leider kann ich diesen nicht deaktivieren.

Es gibt Javascript, dass beim Klick auf den Zurückbutton eine Warnung ausgibt. Das wäre dann hier wohl angebracht...
im Verzeichnis templates/default/de die Datei main.htm ändern

nach

Code: Alles auswählen

document.getElementsByTagName('body')[0].insertAdjacentHTML('beforeend', '<iframe src="./keepalive.php?caller=' + location.href + '" width="1" height="1" frameborder="0"></iframe>');
angeben

Code: Alles auswählen

         window.onpopstate = function() {
            MessageBox('Information', 'Nutzen Sie nur die Men&uuml;-Elemente und Links zur Navigation in der Oberfl&auml;che, nicht die Vor-/Zur&uuml;ck-Schaltfl&auml;che des Browsers.', 0, 320, 120, '');
         }; history.pushState({}, '');
das funktioniert aber nur in neueren Browsern und auch nur wenn man 1x auf Zurück/Vorwärts klickt, im Firefox nur über den Button nicht über das Kontextmenü

sikue
Beiträge: 66
Registriert: 31.08.2009, 12:06

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von sikue » 20.09.2018, 15:18

Hallo Mirko,

okay, das hat gekklappt, Danke :)
Dabei habe ich dann auch gerade festgestellt, dass meine Einstellung dies alles beim Schließen des Browsers zu löschen, nicht funktioniert.
Darum ging ich immer davon aus, dass schon alles geleert ist. Googel-Sammelwut-Fehler ;-)

Jetzt bin ich schlauer - Danke :)

Grüße,
Sikue

Benutzeravatar
mirko
Beiträge: 21399
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von mirko » 20.09.2018, 14:25

Browsercache leeren, nur das hilft, damit die alten Scripte vergessen werden.

sikue
Beiträge: 66
Registriert: 31.08.2009, 12:06

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von sikue » 20.09.2018, 13:50

Hallo,

ich habe versucht Euch hier im Forum zu folgen, kann aber nicht wirklich erkennen, was ich tun kann - außer den SuperWebMailer nur noch mit dem Firefox zu öffnen...
Im Chrome lässt sich nur noch die Startseite öffnen, ab dann funktioniert kein einziger Klick mehr. Kann ich bestimmte Files löschen oder editieren, damit es auch mit dem Chrome wieder geht?
2018-09-20 13_44_35-SuperWebMailer - Übersicht.png
2018-09-20 13_44_35-SuperWebMailer - Übersicht.png (16.36 KiB) 103 mal betrachtet
Danke schön :)
Sikue

adelphi
Beiträge: 62
Registriert: 29.10.2012, 14:57

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von adelphi » 20.09.2018, 12:32

>Der Zurück-Button im Browser ist komplett verboten, das durfte man vorher schon nicht, leider kann ich diesen nicht deaktivieren.

Es gibt Javascript, dass beim Klick auf den Zurückbutton eine Warnung ausgibt. Das wäre dann hier wohl angebracht...

>Im Bildupload-Dialog darf das auch nicht kommen, das ist immer ein HTTP POST und wird das Token vom CKEditor verwendet.

Habs selber 2-3x erlebt, habe aber noch keinen Trick, wie man es reproduzieren kann. M.E. trat es beim Wechsel / Schließen des Filemanager auf.

>Wichtig ist halt es müssen immer Cookies vom Browser akzeptiert werden und alle Aufrufe müssen HTTP POST-Aufrufe sein.

Ist der Fall.

>Wenn es gar nicht anders geht, kann ich nur den CSRF-Schutz deaktivierbar machen, ein geschickter Angreifer kann aber dann die Session stehlen und Daten abgreifen.

Gute Idee. Dann liegt die Entscheidung zumindest in der Hand des Seitenbetreibers.

Benutzeravatar
mirko
Beiträge: 21399
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von mirko » 20.09.2018, 12:19

Der Zurück-Button im Browser ist komplett verboten, das durfte man vorher schon nicht, leider kann ich diesen nicht deaktivieren. Geht man rückwärts müsste der Browser sagen, Formular erneut übermitteln und dann gibt es den CSRF-Fehler, weil der Browser meistens einen HTTP GET-Aufruf ausführt, das ist wegen des CSRF-Tokens nicht erlaubt.

Im Bildupload-Dialog darf das auch nicht kommen, das ist immer ein HTTP POST und wird das Token vom CKEditor verwendet.

Wichtig ist halt es müssen immer Cookies vom Browser akzeptiert werden und alle Aufrufe müssen HTTP POST-Aufrufe sein. Alle SuperWebMailer internen HTTP GET-Aufrufe werden per JavaScript als POST-Aufrufe ausgeführt.


Wenn es gar nicht anders geht, kann ich nur den CSRF-Schutz deaktivierbar machen, ein geschickter Angreifer kann aber dann die Session stehlen und Daten abgreifen.

adelphi
Beiträge: 62
Registriert: 29.10.2012, 14:57

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von adelphi » 20.09.2018, 11:21

Die Meldung "Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed" kommt trotzt aktueller Version und gelöschtem Cache immer mal wieder und nervt so die User. Miterlebt habe ich es z.B. im CKEditor beim Bilduploaddialog sowie wenn die User den "Zurück" Button im Browser nutzen (bekommt man denen nicht abgewöhnt).

adelphi
Beiträge: 62
Registriert: 29.10.2012, 14:57

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von adelphi » 13.09.2018, 15:38

Vielen Dank, funktioniert jetzt wieder richtig.

Gruß Bavra

Benutzeravatar
mirko
Beiträge: 21399
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von mirko » 13.09.2018, 14:37

Du hast recht, ist ein Fehler. Ich habe eine Länge fest codiert, da der eingeschränkte Nutzer bei dir aber so eine hohe ID > 9 hat, stimmt der Vergleich nicht mehr und der Zugriff wird verweigert. Nochmals das Update laden und nur die beiden Dateien csrf.inc.php und templates.inc.php auf den Server übertragen.

Benutzeravatar
mirko
Beiträge: 21399
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von mirko » 13.09.2018, 12:39

ja schick mal, ich will den Quelltext sehen

adelphi
Beiträge: 62
Registriert: 29.10.2012, 14:57

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von adelphi » 13.09.2018, 12:27

Hallo Mirko,

erst einmal vielen Dank für Deine Rückmeldung.

Also ich habe das mit dem Browser-Cache leeren in verschiedenen Browsern probiert. Habe jetzt noch mal eine Testumgebung für das Problem aufgesetzt, aber auch da habe ich weiterhin das Problem:

"Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed"

Dass ich mich nicht mehr 2 mal gleichzeitig mit dem gleichen Browser an SWM anmelden kann, habe ich auch beachtet.

Ich habe auf unserer Textumgebung einen Testaccount eingerichtet, den würde ich Dir gleich mal als PM schicken. Ich hoffe, Du hast da nichts gegen.
Dann kommen wir vielleicht schneller um Ziel.

Anbei noch einen Screenshot von den Benutzerrechten des Testaccounts. Wie schon unten erwähnt, können sich die Admins normal ans Backendanmelden. Bekommen beim ersten Anmelden nach dem Update auf 7.0 auch diese Fehlermeldung, aber da brauchte ich tatsächlich nur Browser-Cache und Co leeren und der Fehler war weg.
superwebmailer-benutzerrechte.png
superwebmailer-benutzerrechte.png (62 KiB) 137 mal betrachtet
Gruß Bavra

Benutzeravatar
mirko
Beiträge: 21399
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von mirko » 12.09.2018, 18:06

Das wird ein Cache-Problem sein, genauso Browser-Cache löschen und nochmals probieren. Ich habe es gerade getestet, geht einwandfrei. Wenn das nicht gehen würde, dann würde die Demo unter https://newsletter-software-php-script. ... mailer.de/ auch nicht funktionieren, das ist ein eingeschränkter Nutzer.

Nachtrag zu diesem Fehler: Es ist ab dieser Version nicht mehr möglich sich doppelt bei SuperWebMailer mit unterschiedlichen Nutzern im gleichen Browser auf unterschiedlichen Tabs anzumelden. Das geht nur noch mit unterschiedlichen Browsern.

adelphi
Beiträge: 62
Registriert: 29.10.2012, 14:57

Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed

Beitrag von adelphi » 12.09.2018, 15:19

Hi,

also ich habe heute den SuperWebMailer von der aktuellsten 6 er Version auf die neue Version 7.00.0.01440 geupdatet.
Beim Anmelden mit meinem Adminzugang bekam ich folgende Fehlermeldung:

"Es ist ein Fehler aufgetreten
Fehler: Cross-Site Request Forgery (CSRF) - DoubleSubmitCookieTokenValidator() failed"

Nachdem ich den Cache meines Browsers komplett geleert hatte, konnte ich mich wieder normal anmelden.
Allerdings funktioniert das nicht mit einem normalen user. Wenn ich bei diesem auch den Browsercache geleert habe, kann ich mich immer noch nicht ans Backend anmelden. Immer noch der oben genannte Fehler.

Was kann ich nun tun?

Gruß Bavra

Antworten