Se debe principalmente a la historia. Las personas conocen CSRF desde principios de la década de 2000, antes de que se inventara el encabezado Origin. El concepto de "token en un campo oculto" proporcionó a los sitios una forma inmediata de solucionar el error, sin esperar a que los navegadores se actualicen. Si bien el mecanismo es un poco desordenado, resulta que es posible que los marcos proporcionen esta funcionalidad automáticamente, con poca participación de los desarrolladores de aplicaciones. En particular, .Net incluyó esto desde el principio con EVENTVALIDATION / VIEWSTATE, y es relativamente raro que las aplicaciones .Net tengan fallas de CSRF.
Cuando CSRF se tomó en serio por primera vez, algunas personas propusieron revisar el encabezado del Referer para corregir la falla. Es ampliamente conocido que el encabezado del Referer es fácil de falsificar, pero esta idea no es tan tonta como parece. Cuando un atacante hace una conexión directa a un servidor web, es fácil falsificar el encabezado del Referer. Sin embargo, en un ataque CSRF, el atacante no está haciendo una conexión directa; el navegador web de la víctima está haciendo la conexión, y el atacante no puede controlar fácilmente el encabezado del Referer. Sin embargo, este enfoque sigue siendo defectuoso. Las versiones anteriores de Flash permitían a un atacante el control libre del encabezado del Referer en un escenario de ataque CSRF. Además, algunos usuarios deshabilitan el encabezado del Referer por razones de privacidad, lo que un sitio web podría confundir con un ataque CSRF.
El encabezado de origen se ha desarrollado como un reemplazo más seguro para el encabezado de referencia. En muchos sentidos, es una solución mucho mejor para CSRF y evita la sobrecarga de administrar los tokens. Algunas aplicaciones, especialmente las aplicaciones de una sola página, usan el encabezado Origin como la única protección CSRF y son completamente seguras. Sin embargo, esta es la excepción y no la regla. El patrón del sincronizador es bien comprendido, ampliamente soportado por marcos y no tiene debilidades conocidas.
Editar : Silverlightfox me informa que lo siguiente no es cierto. Ver su respuesta para más información.
En última instancia, creo que OWASP está siendo un poco atrasado en sus consejos. En 2015 deberían recomendar verificaciones de encabezados de origen como control principal, con el patrón de sincronizador como una alternativa heredada.