Osticket: Se requiere token CSRF válido OsTicket 1.10

Creado en 6 dic. 2016  ·  36Comentarios  ·  Fuente: osTicket/osTicket

Hola, ¿alguna ayuda para este problema?
OsTicket 1.10
Ganar 2012 R2
Apache 2.4
PHP 7.1
Instaló todo, consiga este problema. Leí mucho, encontré una solución para cambiar "session.auto_start" a 1 y funcionó para mí. Me conecté, pero después de un tiempo sigo teniendo el mismo problema.

bug php 7

Comentario más útil

¿Alguien probará el parche 424bfc9 anterior? Resolvió mi problema.
Decidiré hacer una solicitud de extracción en función de los comentarios.

Todos 36 comentarios

Supongo que es porque está ejecutando PHP 7.1.0 (lanzado hace unos días). Tengo entendido que osticket 1.10 todavía no es totalmente compatible con 7.0 todavía. Es posible que desee bajar la calificación a 5.6 y ver si eso ayuda.

¡Gracias! Intentaré reinstalarlo mañana.
Todo esto de php es nuevo para mí, así que acabo de descargar la versión actualizada de todo. Creo que debería haber algún tipo de notificación de que php 7+ aún no es compatible oficialmente.

Tengo el mismo problema en PHP 7.1. Voy a degradar a PHP 5.6, todo funciona bien con PHP más antiguo.
Parece ser un problema diferente con OsTicket y PHP 7 https://github.com/osTicket/osTicket/issues/3033

Tuve ese problema con OSticket 1.10, Apache y PHP 7.1. Después de degradar PHP a 7.0.14, el error desapareció. Espero que esto ayude a alguien.

¿Se está trabajando en esto? PHP 7.1 ya está disponible y la compatibilidad con osTicket sería excelente.

Espero que se esté trabajando en esto

Tengo el mismo problema en PHP 7.1 + osticket 1.10.
Alguna información sobre mi excavación:

  • Cuando visito scp / login.php

    • Se envió un conjunto de cookies válido desde osticket: "OSTSESSID=nntpjei4195nd6ru6h759mtk1d; expires=Tue, 28-Mar-2017 12:46:50 GMT; Max-Age=86400; path=%PATH%"

    • Pero no se creó el registro ost_session correspondiente a esta clave (nntpje ...).

  • Luego, cuando envíe el nombre de usuario y la contraseña:

    • DoesNotExist excepción en upload/include/class.ostsession.php(184): QuerySet->one() (por supuesto, esto está rescatado).

  • Cuando configuro el backend de la sesión en Memcache

    • Se mostró el mismo error.

¿Alguien probará el parche 424bfc9 anterior? Resolvió mi problema.
Decidiré hacer una solicitud de extracción en función de los comentarios.

@kaorukobo, tu parche funcionó para mí, usando la última versión de osticket y el último php 7.1 de remi. ¡Gracias!

@kaorukobo

Puedo confirmar que la solución también funcionó para mí. Centos 7, PHP 7.1.3 de Remi OSTicket 1.10

Se aprobó la solicitud de extracción correspondiente:
https://github.com/osTicket/osTicket/pull/3773

Acabo de instalar el último osTicket, estoy en PHP versión 7.1.5 en Windows 7 Professional Edition Service Pack 1 i586, y obtuve el token CSRF válido requerido en el primer inicio de sesión para administrador

Este es terrible. ¿El mismo problema que https://github.com/osTicket/osTicket/issues/304 ? Ojalá lo hubiera sabido antes de actualizar. No puedo volver a este servidor porque se necesita PHP7 para algunos de mis scripts. Esta debería ser la prioridad 1.

Estimado @ TomAshley303, parece que este problema con PHP 7 no se solucionará pronto, ya que mantener PHP y otros programas actualizados es muy importante para la seguridad. He actualizado a PHP 7.
Aquí está la solución que funciona: https://github.com/osTicket/osTicket/commit/424bfc99d93b920f6162b602eeea41125086425d

Para su información, tuve el mismo problema y era la hora incorrecta en mi máquina.

Acabo de descubrir que es posible iniciar sesión en mi OSticket cuando estoy en PHP5.6. Tan pronto como configuro mi servidor en PHP7.1, ya no puedo iniciar sesión en OSTicket y obtener el mensaje Valid CSRF Token Required.

@Richardvi osTicket es compatible con php7, no con php7.1. Así que ese es probablemente tu problema.

¡OK gracias!

Gracias hermano, realmente ayuda.

¡¡¡Gracias!!! Funciona bien :)

Nuevo en osTicket hoy, trato de ruptura para mí si no es compatible con php7.1.x, hasta que lo haga.

Funciona para mí solo necesito agregar una nueva línea en un archivo 👍
https://github.com/osTicket/osTicket/commit/424bfc99d93b920f6162b602eeea41125086425d

¿Alguien sabe si esto se solucionó en la última versión 1.10.4 (ayer)?

Hola @ Creo que este problema no está solucionado, nunca probé la última versión, ya que se lanzó recientemente.
Puede leer en la nota de la versión qué incluye la actualización: https://github.com/osTicket/osTicket/commit/035fd0af32647199bae662eda6517f70e9225329

@PersonasDentro

De alguna manera se aborda en v1.11.0rc-1 con esto . En lugar de darle una ventana en blanco con un mensaje de error, le da la página de inicio de sesión con el error "Token CSRF válido".

Salud.

Windows + Apache + PHP Versión 7.2.7

session.auto_start = 1 funcionó para mí

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

/etc/php/7.2/apache2/php.ini session.auto_start = 1 también funcionó para mí.

/etc/php/7.2/apache2/php.ini session.auto_start = 1 también funcionó para mí.

Hola @jpkh, muchas gracias por compartir dónde se debe colocar

La última versión es compatible con Php 7.0, por lo que puede pasar de 7.1 a 7.0. Arreglo fácil

En PHP 7.1 y superior, debe devolver una cadena de un controlador de lectura de sesión o obtendrá un error: la documentación siempre ha dicho que debería devolver una cadena, pero PHP recién ahora ha comenzado a imponer eso. Busque en los registros de php para ver si tiene PHP Advertencia: session_start (): No se pudieron leer los datos de la sesión: usuario

agregando la siguiente línea JUSTO antes de la devolución en el método de lectura en class.ostsession.php

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

Esto asegura que no importa lo que ponga en los datos de la sesión, siempre devuelva una cadena como debería

La degradación de su versión de PHP nunca es una buena idea por razones de seguridad. Doblemente malo porque PHP 7.0 ya no tiene soporte regular y no tiene soporte de seguridad en un mes :(

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

@auroraeosrose hay dos funciones de lectura en class.ostsession.php ¿podría especificar la línea en la que se debe insertar este fragmento? la función de lectura en la línea 270? o el de 183? PD, gracias por esta solución ... Cuando usé session.auto_start=1 rompió una de las otras aplicaciones (TestLink) que ejecuto en el mismo servidor, así que aprecio una solución que solo implica cambios en OST y no en php .ini

@davidtessier

El de la clase DbSessionBackend , colóquelo justo encima de la declaración.

PD
Esto se aborda en 1.11 con:

3955

4344

Salud.

¡Gracias! Eso funciono.

En PHP 7.1 y superior, debe devolver una cadena de un controlador de lectura de sesión o obtendrá un error: la documentación siempre ha dicho que debería devolver una cadena, pero PHP recién ahora ha comenzado a imponer eso. Busque en los registros de php para ver si tiene PHP Advertencia: session_start (): No se pudieron leer los datos de la sesión: usuario

agregando la siguiente línea JUSTO antes de la devolución en el método de lectura en class.ostsession.php

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

Esto asegura que no importa lo que ponga en los datos de la sesión, siempre devuelva una cadena como debería

La degradación de su versión de PHP nunca es una buena idea por razones de seguridad. Doblemente malo porque PHP 7.0 ya no tiene soporte regular y no tiene soporte de seguridad en un mes :(

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

Gracias, esto me funciona.

La solución de @auroraeosrose también me funcionó en PHP7.2.15 y osticket 1.10.5

La solución de @auroraeosrose funciona en:

ID de distribuidor: Debian
Descripción: Debian GNU / Linux 9.8 (stretch)
Lanzamiento: 9.8
Nombre en clave: estiramiento
Apache 2.4
PHP versión 7.2.16

¿Fue útil esta página
0 / 5 - 0 calificaciones