Senza entrare troppo nei dettagli, ho un sito che è al 100% Ajax. Tutte le richieste al sito (sia GET che POST) vengono eseguite tramite Ajax. Ora devo implementare la protezione CSRF e tutte le soluzioni che ho trovato si riducono all'invio di un token CSRF nelle intestazioni, ma la maggior parte ottiene questo token da HTML o da un cookie fornito con la richiesta GET.
Ora il mio sito è al 100% Ajax e non viene ricaricato. Mi chiedo se potrei, prima di ogni richiesta POST, effettuare una richiesta GET al server per ottenere token e quindi inviarlo nelle intestazioni insieme alla richiesta POST, ad esempio
Invia GET request a aaa.com/get-csrf-token
per ottenere il token e quindi invia quel token insieme alla richiesta nelle intestazioni, se qualcuno da un altro sito effettua una richiesta GET a aaa.com/get-csrf-token
e il server restituisce un token, quindi fino a come so che non sono ancora in grado di leggere quel valore.
Poiché il token viene generato per sessione, posso semplicemente verificare che il token inviato sia lo stesso token che ho nel memchache associato a quella sessione.
Qualcuno potrebbe dirmi se questo funzionerebbe?