0 votes
in SoSci Survey (dt.) by s312158 (110 points)

Wir haben ein Server-Update von Ubuntu 20.04. auf 24.04 durchgeführt (mit Zwischenstation 22.04.). Nun laufen unsere Session-Cookies ab, wenn wir im Browser einen anderen Tab verwenden. Ich habe bereits in der /etc/php/8.3/fpm/php.ini den sessioc-cookie-lifetime-Wert auf 1440 gesetzt. Aber der Fehler tritt immer noch auf. Hat jemand eine Idee ?
Anm.: im Internet habe ich trotz ausführlicher Suche nichts gefunden und bin auch mit ChatGPT nicht weitergekommen.

1 Answer

0 votes
by SoSci Survey (351k points)

Session- und Cookie-Probleme können vielfältig sein, deshalb muss ich eine einfache Lösung erstmal schuldig bleiben.

Ich würde Sie zur Eingrenzung des Problems einmal darum bitten, dass Sie erstmal die SoSci Survey Installationsroutine unter admin/install.php laufen lassen. Es kann nämlich sein, dass die Server-URL einen Schrägstrich an der falschen Stelle hat, und bereits dies die path-Einstellung im Cookie beeinträchtigt. Das Problem würde die Installationsroutine beheben.

Stellen Sie auch sicher, dass Sie den Server nur über die eingetragene Server-URL aufrufen, und nicht beispielsweise über eine IP-Adresse.

Anschließend löschen Sie bitte einmal den Inhalt des Verzeichnisses system/cache und system/session und prüfen Sie bei der Gelegenheit gleich, bo die Schreibrechte für diese Verzeichnisse korrekt sind - heißt, der Webserver muss dort schreiben können.

Welchen Linux-Benutzer der Webserver hat, sehen Sie bei SoSci Survey in der Server-Wartung unter PHP-Information (ganz rechts oben der "Script Owner").

Prüfen Sie bitte auch, welches Datum/Uhrzeit auf dem Server eingestellt ist.

Testen Sie nun, ob das Problem auch in einem anderen Browser auftritt. Wenn nicht, dann löschen Sie bitte einmal die mit der Server verbundenen Cookies aus Ihrem Browser.

Wenn das Problem auch in einem anderen Browser auftritt, geht es an die detaillierte Fehlersuche. Dafür benötigen Sie die Developer-Tools im Browser. Dort wird (je nach Browser in einem anderen Karteireiter) angezeigt, welche Cookies die aktuelle Website ablegt und sendet (das sieht man im Netzwerk-Tab). Da wäre der nächste Schritt zu prüfen, ob die Cookies nach dem Login korrekt gesetzt werden, ob sie dann vorhanden sind, und ob sie beim Aufruf einer weiteren Seite wieder vom Browser an den Server zurück übermittelt werden.

by s312158 (110 points)
Vielen Dank für die Antwort !
die 1.Punkte kann ich leider ausschließen, da das gleiche Problem auch bei Redcap auftritt (ist auf dem gleichen Server) und auch bei anderen Nutzern, die an den Fragebögen arbeiten.

Bzgl. des Linux-Nutzer des Webservers -> da steht bei uns root . Ist das richtig ? muss da nicht www-data stehen ?
Anm.: die Rechte auf system/cache und system/session sind auf root:www-data und 750 gesetzt.
by SoSci Survey (351k points)
> Bzgl. des Linux-Nutzer des Webservers -> da steht bei uns root . Ist das richtig ? muss da nicht www-data stehen ?

Ich würde nicht empfehlen, den Webserver mit root-Rechten laufen zu lassen. Sollte eine der Web-Anwendungen eine Sicherheitslücke haben, könnten Angreifer damit einfacher das komplette System kompromittieren.

> da das gleiche Problem auch bei Redcap auftritt

Redcap läuft auch auf PHP ... was dafür sprechen würde, dass es ein Problem mit der PHP-Konfiguration des Servers gibt. Prüfen Sie zur Sicherheit einmal die PHP-Errorlogs, bei SoSci Survey wäre das einfach /system/logfiles/errorlog.txt

Haben Sie kontrolliert, ob nach einem Login-Versuch eine Datei unter system/session (evtl. vorher alles andere löschen) erscheint?

Denkbar ist auch ein Konfigurationsproblem direkt auf Ebene der Webserver-Applikation (Apache? Nginx?). Wenn diese zu restriktiv konfiguriert ist, wäre es denkbar, dass sie den Cookie-Pfad falsch erkennt.
by s312158 (110 points)
edited by s312158
>>Ich würde nicht empfehlen, den Webserver mit root-Rechten laufen zu lassen. Sollte eine der Web-Anwendungen eine Sicherheitslücke haben, könnten Angreifer damit einfacher das komplette System kompromittieren.

Können Sie mir bitte einen Tipp geben, wie ich das ändern kann ?

>>Haben Sie kontrolliert, ob nach einem Login-Versuch eine Datei unter system/session erscheint?

Ja, die erscheinen/entstehen bei jedem einloggen neu und bleiben auch "erhalten".

>>Denkbar ist auch ein Konfigurationsproblem direkt auf Ebene der Webserver-Applikation (Apache? Nginx?). Wenn diese zu restriktiv konfiguriert ist, wäre es denkbar, dass sie den Cookie-Pfad falsch erkennt.

Anm.: wir arbeiten mit apache.
Bzgl. der konfiguration hat sich m.E. nach dem Update nichts geändert. Also warum sollte der Fehler daher kommen ?
by SoSci Survey (351k points)
Es gibt die "User" Einstellung in der Apache-Konfiguration - wie es funktioniert, wird hier beschrieben: https://www.simplified.guide/apache/change-user-and-group

Interessant wäre in Ihrem Fall aber, wie Apache überhaupt darauf kommt, als root zu laufen. Die Standard-Einstellung in Ubuntu ist das ziemlich sicher nicht.

> Bzgl. der konfiguration hat sich m.E. nach dem Update nichts geändert. Also warum sollte der Fehler daher kommen ?

Weil Sie geschrieben haben, das Problem träte auch in einer weiteren PHP-Anwendung auf. Die Webserver-Anwendung und der PHP-Prozess sind der kleinste gemeinsame Nenner, deshalb scheint es mir sinnvoll, dort mit der Fehlersuche zu beginnen. Es kann z.B. sein, dass ein Schrägstrich am Ende eines Verzeichnisnamens (in der Konfigurartion) in einer neueren Apache-Version anders interpretiert wird als in einer älteren.

Wahrschienlicher ist aber, dass das PHP-Update im Zuge des Ubuntu-Updates dazu geführt hat, dass nun eine andere php.ini verwendet wird, und dass in deiser andren Konfiguration irgend etwas Probleme verursacht.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...