Sì, funziona così, ma infatti i malintenzionati si fermano con la validazione degli input che arrivano allo script che riceve i dati dal form, non con un token.
Il token ti serve per non avere richieste multiple o bloccare i bot, ogni volta che ricevi i dati dal form distruggi il token che c'è in sessione, così la richiesta successiva con lo stesso token non funziona più.
Se uno vuole ricompilare lo stesso form deve ricaricare la pagina in modo che venga generato un nuovo token.