Debería usar tokens para evitar un spamming "rápido" de sus formularios y solicitudes en general. Pero, en realidad, el pirata informático puede ver la solicitud con toda la consulta y notar que hay un token utilizado. Una vez que lo consiguió, puede crear un bot de spam con el token aleatorio que usa tu formulario.
Una mejor manera de estar seguro sería usar, digamos 3 (o más) tokens y un valor de sesión con un número aleatorio entre la cantidad de tokens que usas. Por lo tanto, puede usar el valor de sesión como una selección aleatoria para el token y validarlo en cualquier lugar que desee. Por lo tanto, es impredecible porque los datos de $ _SESSION están ocultos en la interfaz.
Algo como:
// Setting tokens
$_SESSION['token_1'] = "ocdja45d6"; // Any random value
$_SESSION['token_2'] = "62d5sas9f";
$_SESSION['token_3'] = "d8o9fhd5ds";
$_SESSION['random_token'] = mt_rand(1, 3);
// Getting Token
$randToken = 'token_' . $_SESSION['random_token'];
$token = $_SESSION[$randToken];
// Validating Token
if($token == $postTokenFromHackerOrUser)
{
// Is okay or not?
}
HTH