Estoy implementando la protección CSRF (usando la biblioteca CSRF de Symfony), y me pregunto qué respuesta enviar a los clientes al recibir un token no válido.
Actualmente tenemos una sesión que dura 30 días y queremos que el token CSRF caduque después de 12 horas (estoy siguiendo el tiempo de caducidad en el servidor, no una cookie). Por lo tanto, existe la posibilidad de que un usuario pueda dejar una página abierta todo el día e intentar enviar un formulario.
He visto que esto sucede con JIRA cuando vuelvo a mi computadora un día después de dejar una página abierta, ya que su sesión también es de larga duración, pero el token CSRF solo dura aproximadamente un día. En este momento, mi plan es similar a ese flujo: enviar un error 403 y luego se enviará un nuevo token en la próxima solicitud GET (suponiendo que su sesión aún sea válida).
Además, ¿cuál es la recomendación para los datos que el usuario completó en los formularios HTML? ¿Debo realizar un seguimiento y repoblar el formulario con los datos que ya ingresaron cuando finalmente regresen a esa página?