Sto scrivendo una libreria per generare e controllare i token CSRF.
Mi piacerebbe farlo senza dover utilizzare sessioni e / o cookie. Quello che ho scoperto è questo:
-
Un token generato dall'ora corrente e un id token univoco (unix-timestamp.unique-token-id).
-
Il token verrà quindi sottoposto a hash con il metodo HMAC. Il valore restituito sarebbe: hmac-hash.unix-timestamp.unique-token-id. Questo potrebbe quindi essere nascosto in un modulo.
-
La libreria testerà quindi il token restituito estraendo l'hash HAMC, l'ora e l'ID del token univoco da esso e quindi confronterà l'hash HAMC restituito con uno generato utilizzando l'ora restituita e l'ID token univoco.
Finché il segreto HMAC sul server rimane segreto, dovrebbe essere sicuro o mi sono perso qualcosa?