Osticket: 有効なCSRFトークンが必要OsTicket1.10

作成日 2016年12月06日  ·  36コメント  ·  ソース: osTicket/osTicket

こんにちは、この問題の助けはありますか?
OsTicket 1.10
2012R2に勝つ
Apache 2.4
PHP 7.1
すべてをインストールしました。この問題が発生します。 たくさん読んで、「session.auto_start」を1に変更する解決策を見つけて、それは私のために働いた。 ログインしましたが、しばらくすると同じ問題が発生します。

bug php 7

最も参考になるコメント

誰かがパッチ424bfc9より上で試してみますか? それは私の問題を解決しました。
フィードバックに基づいてプルリクエストを行うことにします。

全てのコメント36件

私の推測では、PHP 7.1.0(数日前にリリースされた)を実行しているためだと思います。 osticket1.10はまだ7.0と完全には互換性がないことを理解しています。 5.6にダウングレードして、それが役立つかどうかを確認することをお勧めします。

ありがとう! 明日再インストールしてみます。
このすべてのphpのものは私にとって新しいので、私はすべての最新バージョンをダウンロードしました。 php7 +がまだ正式にサポートされていないという通知があるはずだと思います。

PHP7.1でも同じ問題が発生します。PHP5.6にダウングレードします。すべて古いPHPで正常に動作します。
OsTicketとPHP7では異なる問題のようですhttps://github.com/osTicket/osTicket/issues/3033

OSticket 1.10、Apache、PHP7.1で問題が発生しました。 PHPを7.0.14にダウングレードした後、エラーは消えました。 これが誰かに役立つことを願っています。

これは取り組んでいますか? PHP 7.1は現在リリースされており、osTicketのサポートは素晴らしいものになるでしょう。

私はこれが取り組んでいることを願っています

PHP 7.1 + osticket1.10でも同じ問題が発生します。
私の掘り出しに関するいくつかの情報:

  • scp /login.phpにアクセスすると

    • 有効なセット-Cookieがosticketから送信されました: "OSTSESSID=nntpjei4195nd6ru6h759mtk1d; expires=Tue, 28-Mar-2017 12:46:50 GMT; Max-Age=86400; path=%PATH%"

    • しかし、このキー(nntpje ...)に対応するost_sessionレコードは作成されませんでした。

  • 次に、ユーザー名とパスワードを送信すると、次のようになります。

    • DoesNotExistで例外upload/include/class.ostsession.php(184): QuerySet->one() (もちろん、これは救出されています。)

  • セッションバックエンドをmemcacheに設定すると

    • 同じエラーが表示されました。

誰かがパッチ424bfc9より上で試してみますか? それは私の問題を解決しました。
フィードバックに基づいてプルリクエストを行うことにします。

@kaorukoboパッチは、最新バージョンのosticketとremiの最新のphp 7.1を使用して、私のために機能しました。 ありがとう!

@kaorukobo

修正が私にも機能したことを確認できます。 Centos 7、Remi OSTicket1.10のPHP7.1.3

対応するプルリクエストが承認されました:
https://github.com/osTicket/osTicket/pull/3773

最新のosTicketをインストールしました。Windows7ProfessionalEditionService Pack 1 i586のPHPバージョン7.1.5を使用しており、管理者への最初のログイン時に必要な有効なCSRFトークンを取得しました。

これはひどいです。 https://github.com/osTicket/osTicket/issues/304と同じ問題? アップグレードする前に知っていたらよかったのに。 一部のスクリプトにはPHP7が必要なため、このサーバーに戻ることはできません。 これは優先度1である必要があります。

親愛なる@ TomAshley303は、PHP 7にアップグレードしたセキュリティにとって、PHPやその他のソフトウェアを最新の状態に保つことが非常に重要であるため、PHP7のこの問題はすぐには修正されないようです。
動作する修正は次のとおりです: https

ちなみに、私は同じ問題を抱えていて、マシンの時刻が間違っていました。

PHP5.6を使用している場合、OSticketへのログインが可能であることがわかりました。 サーバーをPHP7.1に設定するとすぐに、OSTicketにログインできなくなり、Valid CSRF TokenRequiredメッセージが表示されます。

@Richardvi osTicketはPHP7ないphp7.1をサポートしています。 だからそれはおそらくあなたの問題です。

OK、ありがとう!

本当に助けてくれてありがとう兄弟。

ありがとう!!! 正常に動作します :)

今日のosTicketの新機能ですが、php7.1.xをサポートしていない場合は、サポートするまでブレーカーを使用してください。

私のために働くのは、1つのファイルに新しい行を追加するだけです👍
https://github.com/osTicket/osTicket/commit/424bfc99d93b920f6162b602eeea41125086425d

これが最新リリース1.10.4(昨日)で修正されたかどうか誰かが知っていますか?

こんにちは@私はこの問題が修正されていないと思います。最近リリースされたように最後のリリースをテストしたことはありません。
アップデートの内容はリリースノートで読むことができます: https

@PeopleInside

これでv1.11.0rc-1いくらか対処されます。 エラーメッセージが表示された空白のウィンドウが表示される代わりに、「有効なCSRFトークン」というエラーが表示されたログインページが表示されます。

乾杯。

Windows + Apache + PHPバージョン7.2.7

session.auto_start = 1は私のために働いた

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

/etc/php/7.2/apache2/php.ini session.auto_start = 1も私のために働きました。

/etc/php/7.2/apache2/php.ini session.auto_start = 1も私のために働きました。

こんにちは@ jpkhsession.auto_start = 1を配置する必要がある共有をありがとうございます。 これはphp(ini)構成の編集です。この問題を解決するために、OsTicketをどのように変更する必要があるかを尋ねています。 通常、私はPHPではなくソフトウェアで修正することを好みます。 PHP 7.2で作業するための解決策があることを知ってうれしいですが、OsTicket側で問題を解決できるかどうかを理解するのを待つかもしれません。

最新バージョンはPhp7.0と互換性があるため、7.1から7.0にダウングレードできます。 簡単な修正

PHP 7.1以降では、セッション読み取りハンドラーから文字列を返す必要があります。そうしないと、エラーが発生します。ドキュメントには文字列を返す必要があると常に記載されていますが、PHPはこれを強制し始めたばかりです。 PHPログを調べて、PHPがあるかどうかを確認します警告:session_start():セッションデータの読み取りに失敗しました:ユーザー

class.ostsession.phpのreadメソッドで戻る直前に次の行を追加します

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

これにより、セッションデータに何を入力しても、常に文字列が返されるようになります。

PHPバージョンをダウングレードすることは、セキュリティ上の理由から決して良い考えではありません。 PHP 7.0はすでに通常のサポートから外れており、1か月でセキュリティサポートから外れるため、二重に悪いです:(

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

@auroraeosrose class.ostsession.phpには2つの読み取り関数があります。このスニペットを挿入する必要がある行を指定できますか? 270行目の読み取り関数? または183の1つ? PSこのソリューションに感謝します... session.auto_start=1を使用すると、同じサーバーで実行している他のアプリ(TestLink)のいずれかが壊れたため、phpではなくOSTへの変更のみを含むソリューションに感謝します.ini

@davidtessier

クラスDbSessionBackendにあるものは、リターンのすぐ上に置きます。

PS
これは1.11で次のように対処されます。

3955

4344

乾杯。

ありがとう! それはうまくいった。

PHP 7.1以降では、セッション読み取りハンドラーから文字列を返す必要があります。そうしないと、エラーが発生します。ドキュメントには文字列を返す必要があると常に記載されていますが、PHPはこれを強制し始めたばかりです。 PHPログを調べて、PHPがあるかどうかを確認します警告:session_start():セッションデータの読み取りに失敗しました:ユーザー

class.ostsession.phpのreadメソッドで戻る直前に次の行を追加します

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

これにより、セッションデータに何を入力しても、常に文字列が返されるようになります。

PHPバージョンをダウングレードすることは、セキュリティ上の理由から決して良い考えではありません。 PHP 7.0はすでに通常のサポートから外れており、1か月でセキュリティサポートから外れるため、二重に悪いです:(

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

ありがとう、これは私のために働きます。

@auroraeosroseのソリューションは、

@auroraeosroseのソリューションは以下で機能します:

ディストリビューターID:Debian
説明:Debian GNU / Linux 9.8(ストレッチ)
リリース:9.8
コードネーム:ストレッチ
Apache 2.4
PHPバージョン7.2.16

このページは役に立ちましたか?
0 / 5 - 0 評価