in MVC or any other stateless web app
La tua terminologia è piuttosto confusa. Qualsiasi applicazione utente rivolta è una gerarchia di pattern MVC. MVC è raramente apolide, infatti nei casi in cui è senza stato (serveride) c'è un rischio molto piccolo da CSRF. La tua domanda riguarda davvero la gestione delle sessioni.
In assenza di gestione delle sessioni, l'unico modo che conosco per risolvere il problema è tramite OTP - ma probabilmente questa è gestione della sessione poiché l'OTP deve essere conservato fino a quando non viene utilizzato, e le informazioni circa l'OTP modificato quando viene utilizzato.
Se si considera il caso per la pubblicità pay-per-click - non si sta facendo affidamento su alcuna informazione fornita dall'utente, tuttavia è necessario tenere traccia dei conteggi - da qui l'applicazione non è apatica. È possibile evitare la necessità di mantenere una sessione utilizzando (ad esempio) il fingerprinting del browser, ma è necessario mantenere un elenco (stato) di impronte digitali già considerate "cliccate" - l'applicazione non è più a lungo stateless per quanto riguarda il dispositivo client e c'è una sessione. In realtà non è così diverso dal far cadere un cookie sul browser e leggerlo in seguito.
Dato che risolve anche molti altri problemi, mantenere una sessione serveride è la soluzione migliore.