Sesiones invitadas y CSRF [duplicado]

0

¿Qué se considera una práctica común para limitar la caducidad de la sesión para usuarios no autenticados? La razón por la que utilizamos una sesión para invitados es para evitar las solicitudes de falsificación entre sitios cuando los invitados envían un formulario. Estamos considerando la posibilidad de implementar una sesión para los invitados y los administradores, o extender la caducidad de la sesión a algo más que los 24 minutos predeterminados de PHP en el caso de invitados no autenticados.

Aclaración: esta pregunta es para invitados anónimos, que no inician sesión en el sitio.

    
pregunta Tadd Eells 12.07.2017 - 23:13
fuente

2 respuestas

0

Recomendaría usar varios identificadores únicos en este caso, por ejemplo. la cookie del usuario con alguna cadena aleatoria y única, digamos USER_ID, y un token de sesión, por ejemplo SESSID. El token de sesión debe caducar como debe, sin embargo, el USER_ID permanece. De esta manera, podrá identificar a los usuarios que han visitado su sitio web anteriormente y seguir utilizando el nuevo SESSID como protección contra el CSRF.

No es una buena idea extender la vida útil de las sesiones, especialmente si usa este token para verificar la identidad del usuario (en el caso de una cuenta de administrador).

    
respondido por el Valery Marchuk 12.07.2017 - 23:29
fuente
0

Depende de qué tan sensibles sean las acciones que los usuarios pueden tomar, y de qué tan seguro esté de que los tokens de sesión son seguros. Por ejemplo, la mayoría de los bancos destruirán las sesiones automáticamente luego de 15 minutos de inactividad, por otro lado, las sesiones de la cuenta de Google pueden durar indefinidamente.

Si establece HttpOnly y Secure en su cookie de sesión, puede estar razonablemente seguro de que no se puede robar fácilmente y, personalmente, me sentiría muy cómodo si durara más de un mes. Si no puede usar HttpOnly y Secure (especialmente Secure) probablemente lo limitaría a menos de un día, o incluso una hora.

Si entiendo la respuesta de Valery Marchuk correctamente, no proporcionaría ningún beneficio y haría que el secuestro de la sesión fuera trivial si los USER_ID son predecibles (comentaría pero no tengo 50 repeticiones).

    
respondido por el AndrolGenhald 13.07.2017 - 17:38
fuente

Lea otras preguntas en las etiquetas