A ver, en realidad no tiene sentido crear una variable de sesión y colocar su valor en un campo oculto del formulario... es decir, siempre será enviada.
1. Al mostrar el formulario generas esa cadena secreta, almacenándola en variable de sesión.
2. Al procesar el formulario, primero verificas que exista esa cadena secreta en sesión, si no existe, entonces no procesas.
P.D. Soy
Triby, no
Toby