Cómo prevenir la falsificación de solicitudes entre sitios (CSRF) de manera efectiva en PHP

Estoy tratando de prevenir CSRF in php de la siguiente manera

A $_SESSION['token'] se genera al comienzo de cada página. Ya sé que usando$_COOKIES está completamente equivocado ya que se envían automáticamente para cada solicitud.

En cada<form>, la siguiente entrada:<input type="hidden" name="t" value="<?php echo '$_SESSION['token']; ?>"> se adjunta.

Los$_SESSION['token']; se valida con la$_POST['t']

Ahora tengo varias preguntas pequeñas:

¿Es esta una buena manera de prevenir el CSRF? Si no, explique.Cuando también se abre otra página que establece la misma$_SESSION variable, la página anterior (aún abierta) deja de ser válida, ¿cómo evitar esto?For formas este método es claro, pero ¿cómo manejar los enlaces normales? ¿Es necesario agregar también el token a cada enlace?

Muchas gracias por adelantado

Respuestas a la pregunta(1)

Su respuesta a la pregunta