El token de formulario único deshabilita la multitarea para el usuario

Si quiero proteger mi sitio y los usuarios de los ataques de falsificación de sitios (CSRF), puedo generar un token único$token = md5( time() * rand ); encada pagina que tiene una forma El token se envía en un campo de entrada ocultoecho '<input type="hidden" name="token" value="'.$token.'">'; y al mismo tiempo almacenado en una variable de sesión$_SESSION['token'] = $token;.

Comprobaré si en algún formulario enviado.if($_POST['token'] == $_SESSION['token']) y proceder en consecuencia.

Sin embargo, algunos usuarios pueden realizar múltiples tareas. Que es algo que estoy haciendo en este momento, mientras estoy publicando esto.

Al redactar mi publicación, abro diferentes ventanas / pestañas para buscar información o ver algunas otras preguntas sobre el desbordamiento de pila. El desbordamiento de pila me permite enviar el formulario sin problemas.

Pero si tuviera que hacer eso en mi sitio haciendo esto, es decir, navegar por otras páginas mientras todavía estoy redactando una publicación / formulario - mi$token se regenerará cada vez que abra una página diferente de mi sitio web. Haciendo lo ocultoinput token en el formulario en el que estoy trabajando y eventualmente quiero enviarincorrecto, porque no coincide con el$_SESSION['token'] Variable más, que se ha regenerado cuando visité una página diferente ...

¿Alguna buena idea sobre cómo prevenir este problema, o alguna solución mejor para detener CSRF en primer lugar?

Quiero permitir que mis usuarios realicen tareas múltiples Y quiero estar protegido contra CSRF ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta