Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)

More
9 months 16 hours ago #150072 by BlackBox
BlackBox created the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Hallo zusammen,

bei mehreren direkt hintereinander erfolgenden Umfragedurchläufen (Umfrage ist bewusst so konzipiert, die Teilnehmer werden dazu aufgefordert), bricht die Umfrage ab dem zweiten Durchlauf mit dieser Fehlermeldung ab: "The CSRF token could not be verified". Die Option "Setze Cookie um wiederholte Teilnahme auszuschließen" ist ausgeschaltet, d. h. eigentlich müsste es gehen.

max_input_vars ist auf 5000 gesetzt, die Umfrage reizt diesen Wert bei Weitem nicht aus (vgl. manual.limesurvey.org/Troubleshooting#Af...d_not_be_verified.27 ).

Wenn ich die CSRF-Funktionalität in YII komplett deaktiviere (wie hier beschrieben: www.yiiframework.com/doc/guide/1.1/en/to...t-forgery-prevention ), startet die Umfrage zwar, kommt aber nicht über die erste Fragegruppe hinaus (Klick auf "Weiter" führt auf dieselbe Seite zurück).

LimeSurvey: 2.64.1+170310
PHP: 7.0
MySQL: 5.5

Kann mir jemand weiterhelfen?

Danke & Gruß
Michael

Please Log in to join the conversation.

More
9 months 16 hours ago #150073 by BlackBox
BlackBox replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Ergänzung:

Wir führen zwei Umfragen gleichzeitig durch. Der Fehler tritt nicht nur bei wiederholter Durchführung ein und derselben Umfrage auf, sondern auch, wenn man erst die eine und dann direkt die andere Umfrage durchführt.

Kann es sein, dass die in der Session gespeicherten CSRF-Daten nach Beendigung einer Umfrage nicht korrekt zurückgesetzt werden? Nach meinem Verständnis müssten sie das, jedenfalls wenn die oben erwähnte Option nicht gesetzt ist.

Please Log in to join the conversation.

More
9 months 16 hours ago - 9 months 16 hours ago #150074 by jelo
jelo replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)

BlackBox wrote: bei mehreren direkt hintereinander erfolgenden Umfragedurchläufen (Umfrage ist bewusst so konzipiert, die Teilnehmer werden dazu aufgefordert), bricht die Umfrage ab dem zweiten Durchlauf mit dieser Fehlermeldung ab: "


Sind die Teilnehmer an einem Ort? Nutzen eine Internetverbindung? Gleiche Browser? Gleicher Rechner?
Oder verstreut mit verschiedenen Intetnetverbindungen und verschiedenen Endgeräten/Browsern?

Der Fehler tritt nicht nur bei wiederholter Durchführung ein und derselben Umfrage auf, sondern auch, wenn man erst die eine und dann direkt die andere Umfrage durchführt.

Du meinst

Umfrage 1 -> Umfrage 1 (hier Fehler)
Umfrage 1 -> Umfrage 2 -> Umfrage 1(hier Fehler)

Aber NICHT:
Umfrage 1 -> Umfrage 2 (hier Fehler)


Welches Betriebssystem wird beim Webserver eingesetzt?
Last Edit: 9 months 16 hours ago by jelo.

Please Log in to join the conversation.

More
9 months 16 hours ago - 9 months 15 hours ago #150077 by BlackBox
BlackBox replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)

Sind die Teilnehmer an einem Ort? Nutzen eine Internetverbindung? Gleiche Browser? Gleicher Rechner?
Oder verstreut mit verschiedenen Intetnetverbindungen und verschiedenen Endgeräten/Browsern?


Alles divers, die Umfrageteilnehmer antworten von ihren eigenen Geräten.

Umfrage 1 -> Umfrage 1 (hier Fehler) FEHLER
Umfrage 1 -> Umfrage 2 -> Umfrage 1(hier Fehler) So weit kommt man gar nicht (s. nächster Punkt).

Aber NICHT:
Umfrage 1 -> Umfrage 2 (hier Fehler) AUCH HIER FEHLER


Welches Betriebssystem wird beim Webserver eingesetzt?

Apache auf Linux

Wenn ich eine Umfrage über "Umfrage beenden und löschen" abbreche, kann ich sie übrigens direkt wieder starten und der Durchgang läuft korrekt.

Ergänzung: Was zu helfen scheint, ist das Schließen des Browsers zwischen den Durchläufen (dadurch wird der Cookie YII_CSRF_TOKEN gelöscht).
Last Edit: 9 months 15 hours ago by BlackBox.

Please Log in to join the conversation.

More
9 months 15 hours ago #150079 by jelo
jelo replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Sieht schwer nach Cookie/Session Problem aus.
Läuft die Befragung auf einer Subdomain? Oder einem Ordner unterhalb der Hauptdomain?
Link zu einer Demobefragung verfügbar?
Im Browser wären mal alle Cookies zu checken, die gesetzt werden, wenn man die Befragung aufruft. Wird am Ende der Befragung die EndURL genutzt und eine Weiterleitung erfolgt?

Please Log in to join the conversation.

More
9 months 12 hours ago - 9 months 12 hours ago #150092 by holch
holch replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Schon mit dem url zusatz "newtest" probiert?

www.limesurvey.org/forum/design-issues/9...e-url-with-newtest-y

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds
Last Edit: 9 months 12 hours ago by holch.

Please Log in to join the conversation.

More
9 months 11 hours ago #150100 by BlackBox
BlackBox replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Mit "newtest=y" funktioniert es. Danke für den Hinweis! Aber wäre es nicht sinnvoll und logisch, wenn LS nach vollständigen Durchläufen automatisch die Session zurücksetzen würde? Jedenfalls wenn die Cookie-Option (s. oben) nicht gesetzt ist und somit mehrere Durchläufe zulässig sind.

Ist das ein Fall für den Bugtracker? Was meinen die Experten?

Please Log in to join the conversation.

More
9 months 11 hours ago - 9 months 11 hours ago #150101 by holch
holch replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Ohoh, du hast Limesurvey und Session in einem Satz erwähnt. Jetzt kannst Du Dich auf etwas gefasst machen. Jelo, du bist dran...

:-)

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds
Last Edit: 9 months 11 hours ago by holch.

Please Log in to join the conversation.

More
9 months 11 hours ago #150103 by BlackBox
BlackBox replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Heißes Thema? Nichts für ungut. Will niemandem auf die Füße treten, habe nur meine Perspektive als User beschrieben. Von den Kenntnissen eines echten PHP-Entwicklers bin ich weit entfernt ...

Please Log in to join the conversation.

More
9 months 10 hours ago #150106 by holch
holch replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Nein, kein Problem. Die Sessions in LS sind halt Jelos Steckenpferd. Ich bin da auch kein Experte, aber die Sessions sind offensichtlich nicht so ideal umgesetzt in Limesurvey (z.T. werden sehr grosse Sessionfiles erzeugt) und Jelo hat da halt schon "1-2 Mal" draufhingewiesen.

Ich wollte eigentlich auch nur Jelo ein bisschen "aufziehen".

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in to join the conversation.

More
9 months 10 hours ago - 9 months 10 hours ago #150107 by jelo
jelo replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)

BlackBox wrote: Aber wäre es nicht sinnvoll und logisch, wenn LS nach vollständigen Durchläufen automatisch die Session zurücksetzen würde?

Gibt ja manche Befragungslinks, die das newtest immer mitführen.

holch hat ja leider die Lösung zu früh verraten.
Ich wollte ja weitere Infos sammeln, da Fehlerlage meist recht komplex ist.
Dein Fehlerbild kommt ja nicht in allen Setups so vor.

Das Cookie soll ja seine Gültigkeit nach Ende der Session verlieren.

Name YII_CSRF_TOKEN
Value 39dsadsdsdölsadksaödksadkasdsad8 (no real!)
Host Demo.limesurvey.org
Path /
Expires At end of session
Secure Yes
HttpOnly No

Je nach Browser werden solche Sessions/Cookies aber auch zwischengespeichert.
Zumal wenn x Tabs offen sind.
Und beim erneuten Aufruf kommen die Websites dann aus dem Cache, anstatt neu abgerufen zu werden.
www.yiiframework.com/wiki/506/checking-f...-on-the-client-side/

Stets am Ende das NewTest mitlaufen zu lassen, ist natürlich auch eine Möglichkeit.
Können sich die Entwickler ja mal zu auslassen. Ich diene hier mehr als Waldorf- und Statler-Double. Ich sehe konzeptionell nur das Problem, dass newtest ja eine neue Session initiert, obwohl am Ende ja nicht zwangsläufig eine neue Session benötigt wird.

Da hier auf das Yii-Framework aufgesetzt wird, gibt sicherlich auch noch die ein- oder andere Macke im Zusammenspiel mit altem Code.
www.yiiframework.com/doc/guide/1.1/de/topics.security


Und dieser Fehler ist bei allen Nutzern auftaucht? Oder gibt es Ausnahmen im Feld?
Was ist mit unterschiedlichen Zeitabständen des Zugriffs?
Last Edit: 9 months 10 hours ago by jelo.

Please Log in to join the conversation.

More
9 months 9 hours ago #150109 by holch
holch replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)

jelo wrote: holch hat ja leider die Lösung zu früh verraten.


Sorry... ;-)

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in to join the conversation.

More
9 months 8 hours ago #150114 by BlackBox
BlackBox replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)

Ich sehe konzeptionell nur das Problem, dass newtest ja eine neue Session initiert, obwohl am Ende ja nicht zwangsläufig eine neue Session benötigt wird.


Stimmt. Aber den User in einem Standardszenario (LS erlaubt mehrere Umfragen pro Installation und erlaubt in der Standardeinstellung auch mehrere Durchläufe ein und derselben Umfrage) mit einer ziemlich unklaren Yii-Fehlermeldung zu konfrontieren, ist m. E. keine gute Lösung. Zumindest eine LS-spezifische und aussagekräftigere Meldung wäre wünschenswert.

Und dieser Fehler ist bei allen Nutzern auftaucht? Oder gibt es Ausnahmen im Feld?
Was ist mit unterschiedlichen Zeitabständen des Zugriffs?


Zwei User haben von dem Fehler berichtet. Ich konnte ihn (mit Firefox) sofort reproduzieren. Mit dem Öffnen/Schließen des Browsers hat das Ganze anscheinend nichts zu tun. Unterschiedliche Zeitabstände habe ich nicht getestet. Fragst du wegen der Session-Lifespan? Serverseitig ist session.gc_maxlifetime auf 1440 gesetzt.

LS ist in einem Unterverzeichnis des Webspace installiert.

Sehe ich das denn jetzt richtig, dass mehrere Durchläufe ein und derselben Umfrage bzw. mehrere Umfragen in einer Domain nur mittels dieses hässlichen newtest-Workarounds bzw. des zwischenzeitlichen Schließens des Browsers realisierbar sind?

Please Log in to join the conversation.

More
9 months 7 hours ago - 9 months 7 hours ago #150115 by holch
holch replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)
Im Normalfall ist eine Umfragesoftware darauf ausgelegt, dass jeder maximal 1x teilnimmt. Wenn mehr Teilnahmen erwünscht sind (z.B. bei der Dateneingabe von einem offline Fragebogen), dann löse ich das z.B. meist über Tokens, weil ich ja auch nachverfolgen will wer wie oft ausfüllt (also entweder eine Liste an Tokens an jede Person, oder einen Token mit mehreren "usesleft"). Ob jetzt an der URL noch "newtest" dran hängt oder nicht, das finde ich jetzt nicht "hässlich". Das einzige Problem das ich mit Newtest sehe ist, dass es nicht wirklich in der GUI auftaucht, also etwas "händisch" gemacht werden muss. Aber wenn du in die Endurl den link mit newtest einbaust, sollte das doch recht flott funktionieren.

Wäre natürlich super, wenn man das alles aus dem Backend heraus einstellen könnte, aber ich bin ja schon froh, dass wir das überhaupt haben. Denn so lange gibt es das noch gar nicht, wenn ich mich richtig erinnere.

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds
Last Edit: 9 months 7 hours ago by holch.

Please Log in to join the conversation.

More
9 months 6 hours ago #150117 by jelo
jelo replied the topic: Wiederholte Umfragedurchläufe nicht möglich? (CSRF-Fehler)

BlackBox wrote: aussagekräftigere Meldung wäre wünschenswert.


The CSRF token could not be verified" ist ausreichend.
Selbst auf Deutsch und mit drei Sätzen mehr wird es nicht verständlicher für die Vielzahl der Nutzer.
Man betrachte sich die Abhandlung hier. de.wikipedia.org/wiki/Cross-Site-Request-Forgery

Das Problem ist nicht die Fehlermeldung, sondern die Vielzahl an Ursachen, die diesen Fehler erzeugen können. Nicht jeder, der zweimal die Befragung aufruft, hat Deinen Fehler. Probier mal den Fehler unter Firefox auf Demo.limesurvey.org zu produzieren.

Bei Yii ist in der Feinkonfiguration sicherlich noch die ein oder andere Option zur Reduzierung von Problemen in bestimmen Umfeldern gegeben.
github.com/LimeSurvey/LimeSurvey/blob/bb...ig/internal.php#L113

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!