Osticket: Token CSRF válido obrigatório OsTicket 1.10

Criado em 6 dez. 2016  ·  36Comentários  ·  Fonte: osTicket/osTicket

Oi, alguma ajuda para este problema?
OsTicket 1.10
Win 2012 R2
Apache 2.4
Php 7.1
Instalado tudo, pega esse problema. Li muito, encontrei solução para mudar "session.auto_start" para 1 e funcionou para mim. Eu loguei, mas depois de um tempo ainda tenho o mesmo problema.

bug php 7

Comentários muito úteis

Alguém tentará o patch 424bfc9 acima? Isso resolveu meu problema.
Vou decidir fazer uma solicitação de pull com base em feedbacks.

Todos 36 comentários

Meu palpite é que é porque você está executando o PHP 7.1.0 (lançado há alguns dias). É meu entendimento que osticket 1.10 ainda não é totalmente compatível com 7.0. Você pode querer diminuir a nota para 5,6 e ver se isso ajuda.

Obrigado! Vou tentar reinstalá-lo amanhã.
Todo esse material php é novo para mim, então acabei de baixar a versão atualizada de tudo. Eu acho que deveria haver algum tipo de notificação de que php 7 ou superior não é oficialmente suportado ainda.

Eu tenho o mesmo problema no PHP 7.1 vou fazer o downgrade para o PHP 5.6 e funciona bem com o PHP mais antigo.
Parece ser um problema diferente com OsTicket e PHP 7 https://github.com/osTicket/osTicket/issues/3033

Tive esse problema com OSticket 1.10, Apache e PHP 7.1. Depois de fazer o downgrade do PHP para 7.0.14, o erro desapareceu. Espero que isso ajude alguém.

Isso está sendo trabalhado? O PHP 7.1 foi lançado agora e o suporte osTicket para ele seria ótimo.

Espero que isso esteja sendo trabalhado

Eu tenho o mesmo problema no PHP 7.1 + osticket 1.10.
Algumas informações sobre minhas escavações:

  • Quando eu visito scp / login.php

    • Set-Cookie válido foi enviado do osticket: "OSTSESSID=nntpjei4195nd6ru6h759mtk1d; expires=Tue, 28-Mar-2017 12:46:50 GMT; Max-Age=86400; path=%PATH%"

    • Mas o registro ost_session correspondente a esta chave (nntpje ...) não foi criado.

  • Então, quando eu enviar nome de usuário e senha:

    • DoesNotExist exceção em upload/include/class.ostsession.php(184): QuerySet->one() (é claro, isso foi resgatado.)

  • Quando eu defino o back-end da sessão para memcache

    • O mesmo erro foi mostrado.

Alguém tentará o patch 424bfc9 acima? Isso resolveu meu problema.
Vou decidir fazer uma solicitação de pull com base em feedbacks.

@kaorukobo, seu patch funcionou para mim, usando a última versão do osticket e o último php 7.1 da remi. Obrigado!

@kaorukobo

Posso confirmar que a correção funcionou para mim também. Centos 7, PHP 7.1.3 de Remi OSTicket 1.10

A solicitação pull correspondente foi aprovada:
https://github.com/osTicket/osTicket/pull/3773

Acabei de instalar o osTicket mais recente, estou no PHP versão 7.1.5 no Windows 7 Professional Edition Service Pack 1 i586 e recebi o token CSRF válido necessário no primeiro login para o administrador

Isso é terrível. Mesmo problema que https://github.com/osTicket/osTicket/issues/304 ? Eu gostaria de ter sabido antes de fazer o upgrade. Não posso voltar neste servidor porque PHP7 é necessário para alguns dos meus scripts. Esta deve ser a prioridade 1.

Caro @ TomAshley303, parece que este problema com o PHP 7 não será corrigido em breve, pois manter o PHP e outros softwares atualizados é muito importante para a segurança. Eu atualizei para o PHP 7
Aqui está a solução para quem funciona: https://github.com/osTicket/osTicket/commit/424bfc99d93b920f6162b602eeea41125086425d

Para sua informação, tive o mesmo problema e era hora incorreta na minha máquina.

Acabei de descobrir que o login no meu OSticket é possível no PHP5.6. Assim que configuro meu servidor para PHP7.1, não consigo mais fazer login no OSTicket e obter a mensagem Valid CSRF Token Required.

@Richardvi osTicket suporta php7 e não php7.1. Portanto, esse é provavelmente o seu problema.

OK, obrigado!

Obrigado irmão isso realmente ajuda.

Obrigado!!! Funciona bem :)

Novo no osTicket hoje, negocie o disjuntor para mim se ele não suportar php7.1.x, até que seja.

Funciona para mim, só preciso adicionar uma nova linha em um arquivo 👍
https://github.com/osTicket/osTicket/commit/424bfc99d93b920f6162b602eeea41125086425d

Alguém sabe se isso foi corrigido na última versão 1.10.4 (ontem)?

Olá @ Acho que este problema não foi corrigido, nunca testei a última versão como foi lançada recentemente.
Você pode ler na nota de lançamento o que a atualização inclui: https://github.com/osTicket/osTicket/commit/035fd0af32647199bae662eda6517f70e9225329

@PeopleInside

É um tanto endereçado em v1.11.0rc-1 com isso . Em vez de exibir uma janela em branco com uma mensagem de erro, ele exibe a página de login com o erro "Token CSRF válido".

Saúde.

Windows + Apache + PHP Versão 7.2.7

session.auto_start = 1 funcionou para mim

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

/etc/php/7.2/apache2/php.ini session.auto_start = 1 funcionou para mim também.

/etc/php/7.2/apache2/php.ini session.auto_start = 1 funcionou para mim também.

Olá @jpkh, muito obrigado por compartilhar onde session.auto_start = 1 deve ser colocado. Esta é uma edição da configuração do php (ini), estou perguntando o que OsTicket deve alterar para resolver esse problema. Normalmente prefiro a correção feita no software e não no PHP. É bom saber que há uma solução para trabalhar com PHP 7.2, mas talvez eu espere para entender se o problema pode ser resolvido no lado do OsTicket.

A última versão é compatível com Php 7.0, então você pode fazer o downgrade de 7.1 para 7.0. Conserto fácil

No PHP 7.1 e superior, é necessário retornar uma string de um manipulador de leitura de sessão ou você obterá um erro - a documentação sempre disse que deveria retornar uma string, mas o PHP só agora começou a impor isso. Olhe nos logs de php para ver se você tem PHP Warning: session_start (): Falha ao ler os dados da sessão: usuário

adicionando a seguinte linha APENAS antes do retorno no método de leitura em class.ostsession.php

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

Isso garante que não importa O QUE você coloque nos dados da sessão, você sempre retorna uma string como deveria

Desatualizar sua versão do PHP nunca é uma boa ideia por razões de segurança. Duplamente ruim porque o PHP 7.0 já está sem suporte regular e sem suporte de segurança em um mês :(

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

@auroraeosrose existem duas funções de leitura em class.ostsession.php, você poderia especificar a linha em que este trecho deve ser inserido? a função de leitura na linha 270? ou o do 183? PS obrigado por esta solução ... Quando eu usei session.auto_start=1 ele quebrou um dos outros aplicativos (TestLink) que eu executo no mesmo servidor, então agradeço uma solução que envolve apenas alterações no OST e não no php .ini

@davidtessier

O da classe DbSessionBackend , coloque logo acima do retorno.

PS
Isso é tratado em 1.11 com:

3955

4344

Saúde.

Obrigado! Isso funcionou.

No PHP 7.1 e superior, é necessário retornar uma string de um manipulador de leitura de sessão ou você obterá um erro - a documentação sempre disse que deveria retornar uma string, mas o PHP só agora começou a impor isso. Olhe nos logs de php para ver se você tem PHP Warning: session_start (): Falha ao ler os dados da sessão: usuário

adicionando a seguinte linha APENAS antes do retorno no método de leitura em class.ostsession.php

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

Isso garante que não importa O QUE você coloque nos dados da sessão, você sempre retorna uma string como deveria

Desatualizar sua versão do PHP nunca é uma boa ideia por razões de segurança. Duplamente ruim porque o PHP 7.0 já está sem suporte regular e sem suporte de segurança em um mês :(

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

Obrigado, isso funciona para mim.

A solução de @auroraeosrose também funcionou para mim no PHP7.2.15 e osticket 1.10.5

A solução de @auroraeosrose funciona em:

ID do Distribuidor: Debian
Descrição: Debian GNU / Linux 9.8 (extensão)
Versão: 9,8
Codename: stretch
Apache 2.4
PHP versão 7.2.16

Esta página foi útil?
0 / 5 - 0 avaliações