Recentemente mi sono imbattuto in alcuni siti web usando HTTP Header, ovvero X-XSRF-Token e un cookie con un nome simile. È una soluzione migliore rispetto alla sicurezza basata su token casuali per CSRF?
Sì, potresti usare qualcosa come l' intestazione X-Requested-With - questa intestazione non può essere passata cross domain senza il server che opta per questo con il dominio in questione tramite CORS.
Il modello di token del sincronizzatore è ancora il metodo consigliato da OWASP - uno dei motivi è che ci sono stati vulnerabilità in passato con i plugin del browser (es. Flash) che hanno consentito di impostare le intestazioni che normalmente non possono essere impostate nel browser via JavaScript.
Quindi per questo motivo raccomanderei il modello di token del sincronizzatore per controllare le intestazioni, ma al momento della scrittura entrambe sono ugualmente buone. Non si sa mai se c'è un flash zero-day dietro l'angolo però.
Leggi altre domande sui tag web-application appsec csrf