Genero un token anti-CSRF casuale per sessione e lo memorizzo in un cookie (con il flag http_only
impostato). Quindi aggiungo quel token ai moduli (in un campo di input nascosto) e ai link.
Quando si riceve una richiesta sul server, controllo che il cookie e il campo token anti-CSRF del modulo o del collegamento esistano e che i due valori siano gli stessi; in caso contrario, viene considerato un attacco CSRF e la richiesta viene respinta con un messaggio appropriato.
Questo meccanismo è sicuro / sufficiente come minimo? (Vale a dire, in assenza di buchi di sicurezza nel browser.)
Penso che un utente malintenzionato non possa leggere o impostare il cookie di un dominio che non possiede, quindi non può falsificare una richiesta con lo stesso token.