Soy un principiante que trabaja en un script de inicio de sesión en PHP. Esta es la declaración token de forma que tengo hasta ahora:Uso y manejo de tokens de formulario PHP
$_SESSION["form_token"] = md5(rand(time(), true)) ;
se emite la declaración que acaba cuando el usuario indica que él/ella quiere iniciar sesión.
Mi comprensión limitada es que el objetivo de tokens es identificar a un usuario único en un punto único en el tiempo y disfrazar la información del token de formulario.
Entonces todo se vuelve borroso. Aquí están mis 3 preguntas abiertas:
¿Cuándo es el mejor momento para "verificar" el token del formulario por razones de seguridad?
¿Cómo puedo verificarlo?
¿Cuándo, si alguna vez, "destruyo" el token de formulario? (OIA, sería el token forma mantenerse "activo" hasta que el usuario cierra la sesión?
FYI MD5 es algo limitado y si se necesita generar una cadena aleatoria le sugiero que utilice esto en su lugar: $ id = sha1 (mt_rand()); Si usas rand() solo obtienes 32,000 combinaciones posibles. – TravisO
relacionado: http://stackoverflow.com/questions/5111007/does-php-have-an-authenticity-token-like-rails – baptx