Hace poco me encontré con algunos sitios web que utilizaban el encabezado HTTP, a saber, X-XSRF-Token y una cookie con un nombre similar. ¿Es una mitigación mejor que usar la seguridad basada en token aleatorio para CSRF?
Sí, podría usar algo como encabezado X-Requested With : este encabezado no se puede pasar de dominio cruzado sin el servidor que opta por esto con el dominio en cuestión a través de CORS.
El patrón de token del sincronizador sigue siendo el método recomendado por OWASP : una de las razones es que ha habido vulnerabilidades en el pasado con complementos del navegador (por ejemplo, Flash) que han permitido configurar encabezados que normalmente no se pueden configurar en el navegador a través de JavaScript.
Por esa razón, recomendaría el patrón de token del sincronizador sobre la comprobación de encabezados, pero en el momento de escribir ambos son igualmente buenos. Sin embargo, nunca se sabe si hay un Flash de día cero a la vuelta de la esquina.
Lea otras preguntas en las etiquetas web-application appsec csrf