Realmente no tienen que hacerlo, por ejemplo, en Django hay un middleware CSRF que los agrega automáticamente en todas partes y realiza las comprobaciones en cada envío.
La razón por la que los necesita es el modelo de seguridad del navegador web: se debe permitir que los sitios se envíen a otros sitios, por lo que cosas como los proveedores de inicio de sesión basados en la nube (como Facebook) aún funcionan. Pero el problema es que cuando el envío se realiza a algún dominio, las cookies para ese dominio se incluyen automáticamente en los encabezados, por lo que si el usuario ya ha iniciado sesión en PayPal, la falta de protección CSRF permitiría que un sitio aleatorio emitiera una solicitud de pago. No es genial
TL; DR: encuentre un marco que proteja CSRF por usted. Este debería ser el estado predeterminado de las cosas, solo desactívelo cuando sepa por qué (por ejemplo, usted es el proveedor de inicio de sesión en la nube mencionado anteriormente o algo así).
- ¿Cuáles son buenos ejemplos de diseño moderno y plano en aplicaciones web empresariales?
- ¿Cuál es la diferencia entre un sitio web 'simple' y una aplicación web?
- ¿Qué es bueno para una aplicación web con un marco de JavaScript front-end, AngularJS o React.js, si estoy usando .Net MVC5 como mi arquitectura de back-end?
- ¿Cuáles son los marcos utilizados para el desarrollo de sitios web PHP?
- ¿Puede una startup tecnológica obtener fondos solo con una aplicación web antes de crear las aplicaciones móviles?