Osticket: Gültiges CSRF-Token erforderlich OsTicket 1.10

Erstellt am 6. Dez. 2016  ·  36Kommentare  ·  Quelle: osTicket/osTicket

Hallo, irgendeine Hilfe für dieses Problem?
OsTicket 1.10
Gewinnen Sie 2012 R2
Apache 2.4
PHP 7,1
Alles installiert, bekomme dieses Problem. Viel gelesen, Lösung gefunden, um "session.auto_start" auf 1 zu ändern, und es hat bei mir funktioniert. Ich habe mich eingeloggt, aber nach einer Weile immer noch das gleiche Problem.

bug php 7

Hilfreichster Kommentar

Wird jemand obiger Patch 424bfc9 versuchen? Es hat mein Problem gelöst.
Ich entscheide, eine Pull-Anfrage basierend auf Rückmeldungen zu stellen.

Alle 36 Kommentare

Ich vermute, dass es daran liegt, dass Sie PHP 7.1.0 (vor einigen Tagen veröffentlicht) ausführen. Soweit ich weiß, ist osticket 1.10 noch nicht vollständig mit 7.0 kompatibel. Vielleicht möchten Sie auf 5,6 herunterstufen und sehen, ob das hilft.

Vielen Dank! Ich werde morgen versuchen, es neu zu installieren.
All dieses PHP-Zeug ist neu für mich, also habe ich gerade die aktuelle Version von allem heruntergeladen. Ich denke, es sollte eine Art Benachrichtigung geben, dass PHP 7+ noch nicht offiziell unterstützt wird.

Ich habe das gleiche Problem mit PHP 7.1. Ich werde auf PHP 5.6 downgraden, alles funktioniert mit dem ältesten PHP.
Scheint ein anderes Problem mit OsTicket und PHP 7 zu sein https://github.com/osTicket/osTicket/issues/3033

Ich hatte dieses Problem mit OSticket 1.10, Apache und PHP 7.1. Nach dem Downgrade von PHP auf 7.0.14 verschwand der Fehler. Hoffe das hilft jedem.

Wird daran gearbeitet? PHP 7.1 ist inzwischen freigegeben und osTicket-Unterstützung dafür wäre großartig.

Ich hoffe, daran wird gearbeitet

Ich habe das gleiche Problem mit PHP 7.1 + osticket 1.10.
Einige Informationen zu meinem Graben:

  • Wenn ich scp/login.php besuche

    • Gültiges Set-Cookie wurde von osticket gesendet: "OSTSESSID=nntpjei4195nd6ru6h759mtk1d; expires=Tue, 28-Mar-2017 12:46:50 GMT; Max-Age=86400; path=%PATH%"

    • Aber der entsprechende ost_session-Datensatz zu diesem Schlüssel (nntpje...) wurde nicht erstellt.

  • Wenn ich dann Benutzername und Passwort einreiche:

    • DoesNotExist Ausnahme in upload/include/class.ostsession.php(184): QuerySet->one() (das wird natürlich gerettet.)

  • Wenn ich das Sitzungs-Back-End auf Memcache einstelle

    • Es wurde der gleiche Fehler angezeigt.

Wird jemand obiger Patch 424bfc9 versuchen? Es hat mein Problem gelöst.
Ich entscheide, eine Pull-Anfrage basierend auf Rückmeldungen zu stellen.

@kaorukobo Ihr Patch hat bei mir funktioniert, mit der neuesten Version von osticket und dem neuesten PHP 7.1 von remi. Vielen Dank!

@kaorukobo

Kann bestätigen, dass der Fix auch bei mir funktioniert hat. Centos 7, PHP 7.1.3 von Remi OSTicket 1.10

Der entsprechende Pull-Request wurde genehmigt:
https://github.com/osTicket/osTicket/pull/3773

Ich habe gerade das neueste osTicket installiert, ich verwende PHP Version 7.1.5 unter Windows 7 Professional Edition Service Pack 1 i586 und habe das gültige CSRF-Token, das bei der ersten Anmeldung beim Administrator erforderlich ist

Das ist fürchterlich. Gleiches Problem wie https://github.com/osTicket/osTicket/issues/304 ? Ich wünschte, ich hätte es vor dem Upgrade gewusst. Ich kann nicht auf diesen Server zurückkehren, da PHP7 für einige meiner Skripte benötigt wird. Dies sollte Priorität 1 haben.

Lieber @TomAshley303, anscheinend wird dieses Problem mit PHP 7 nicht bald behoben, da es für die Sicherheit sehr wichtig ist, PHP und andere Software auf dem
Hier ist der Fix, der funktioniert: https://github.com/osTicket/osTicket/commit/424bfc99d93b920f6162b602eeea41125086425d

Zu Ihrer Information, ich hatte das gleiche Problem und es war die falsche Zeit auf meinem Computer.

Habe gerade herausgefunden, dass die Anmeldung auf meinem OSticket unter PHP5.6 möglich ist. Sobald ich meinen Server auf PHP7.1 eingestellt habe, kann ich mich nicht mehr bei OSTicket anmelden und erhalte die Meldung Valid CSRF Token Required.

@Richardvi osTicket unterstützt php7 nicht php7.1. Das ist also wahrscheinlich dein Problem.

OK danke!

Danke Bruder es hilft wirklich.

Vielen Dank!!! Funktioniert gut :)

Heute neu bei osTicket, Deal Breaker für mich, wenn es php7.1.x nicht unterstützt, bis es dies tut.

Funktioniert für mich, muss nur eine neue Zeile in einer Datei hinzufügen 👍
https://github.com/osTicket/osTicket/commit/424bfc99d93b920f6162b602eeea41125086425d

Weiß jemand, ob dies in der neuesten Version 1.10.4 (gestern) behoben wurde?

Hallo @ Ich denke, dieses Problem ist nicht behoben, habe die letzte Version nie getestet, da sie kürzlich veröffentlicht wurde.
Sie können in der Release-Note nachlesen, was das Update beinhaltet: https://github.com/osTicket/osTicket/commit/035fd0af32647199bae662eda6517f70e9225329

@PeopleInside

Es ist etwas in v1.11.0rc-1 mit this adressiert. Anstatt Ihnen ein leeres Fenster mit einer Fehlermeldung zu geben, erhalten Sie die Anmeldeseite mit dem Fehler "Gültiger CSRF-Token".

Danke schön.

Windows + Apache + PHP-Version 7.2.7

session.auto_start=1 hat bei mir funktioniert

Ubuntu 18.04 x64 + Apache2 + PHP 7.2-10 + OST 1.10.4

/etc/php/7.2/apache2/php.ini session.auto_start=1 hat bei mir auch funktioniert.

/etc/php/7.2/apache2/php.ini session.auto_start=1 hat bei mir auch funktioniert.

Hallo @jpkh, vielen Dank für das Teilen, wo session.auto_start=1 platziert werden sollte. Dies ist eine Bearbeitung der php (ini) -Konfiguration. Ich frage, was OsTicket ändern sollte, um dieses Problem zu beheben. Normalerweise mache ich es lieber in der Software und nicht in PHP. Schön zu wissen, dass es eine Lösung für die Arbeit mit PHP 7.2 gibt, aber vielleicht werde ich warten, um zu verstehen, ob das Problem auf der OsTicket-Seite gelöst werden kann.

Die neueste Version ist mit PHP 7.0 kompatibel, sodass Sie von 7.1 auf 7.0 downgraden können. Einfache Lösung

In PHP 7.1 und höher müssen Sie einen String von einem Session-Read-Handler zurückgeben, oder Sie erhalten einen Fehler - die Dokumentation hat immer gesagt, dass es einen String zurückgeben sollte, aber PHP hat erst jetzt damit begonnen, dies zu erzwingen. Sehen Sie in den PHP-Protokollen nach, ob Sie PHP haben Warnung: session_start(): Sitzungsdaten konnten nicht gelesen werden: user

Hinzufügen der folgenden Zeile JUST vor der Rückgabe in der read-Methode in class.ostsession.php

if(!is_string($this->data->session_data)) {
    $this->data->session_data = strval($this->data->session_data);
}

Dies stellt sicher, dass Sie, egal WAS Sie in die Sitzungsdaten eingeben, immer eine Zeichenfolge zurückgeben, wie Sie sollten

Ein Downgrade Ihrer PHP-Version ist aus Sicherheitsgründen nie eine gute Idee. Doppelt schlecht, weil PHP 7.0 bereits aus dem regulären Support und in einem Monat aus dem Sicherheitssupport heraus ist :(

http://php.net/supported-versions.php

@auroraeosrose es gibt zwei Lesefunktionen in class.ostsession.php könnten Sie die Zeile angeben, in die dieses Snippet eingefügt werden muss? die Lesefunktion auf Zeile 270? oder der auf 183? PS danke für diese Lösung ... Als ich session.auto_start=1 habe, ist eine der anderen Apps (TestLink) kaputt gegangen, die ich auf demselben Server betreibe .ini

@davidtessier

Der in der Klasse DbSessionBackend , lege ihn direkt über den Rückgabewert.

PS
Dies wird in 1.11 angesprochen mit:

3955

4344

Danke schön.

Vielen Dank! Das hat funktioniert.

In PHP 7.1 und höher müssen Sie einen String von einem Session-Read-Handler zurückgeben, oder Sie erhalten einen Fehler - die Dokumentation hat immer gesagt, dass es einen String zurückgeben sollte, aber PHP hat erst jetzt damit begonnen, dies zu erzwingen. Sehen Sie in den PHP-Protokollen nach, ob Sie PHP haben Warnung: session_start(): Sitzungsdaten konnten nicht gelesen werden: user

Hinzufügen der folgenden Zeile JUST vor der Rückgabe in der read-Methode in class.ostsession.php

if(!is_string($this->data->session_data)) {
    $this->data->session_data = strval($this->data->session_data);
}

Dies stellt sicher, dass Sie, egal WAS Sie in die Sitzungsdaten eingeben, immer eine Zeichenfolge zurückgeben, wie Sie sollten

Ein Downgrade Ihrer PHP-Version ist aus Sicherheitsgründen nie eine gute Idee. Doppelt schlecht, weil PHP 7.0 bereits aus dem regulären Support und in einem Monat aus dem Sicherheitssupport heraus ist :(

http://php.net/supported-versions.php

Danke, das funktioniert bei mir.

Lösung von @auroraeosrose hat bei mir auch auf PHP7.2.15 und osticket 1.10.5 funktioniert

Die Lösung von @auroraeosrose funktioniert auf:

Vertriebs-ID: Debian
Beschreibung: Debian GNU/Linux 9.8 (Stretch)
Ausgabe: 9.8
Codename: dehnen
Apache 2.4
PHP-Version 7.2.16

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen