Un modo semplice può essere semplicemente passare i parametri tra le varie pagine con richieste POST e non GET, in modo che non si possa semplicemente copiare l'URL (anche se ovviamente anche le richieste POST si possono "simulare" manualmente). In alternativa, puoi usare un campo nascosto o un cookie come base per implementare le sessioni, in modo da poter tenere traccia lato server del punto della procedura a cui è giunto l'utente.
In ogni caso, da lato server devi sempre essere pronto a gestire un'interazione "non ortodossa" da parte dell'utente - da browser si può tranquillamente usare i tasti avanti/indietro, re-inviare richieste, eccetera.

Rispondi quotando