Los ataques CSRF funcionan porque…
Opciones
- Las contraseñas son débiles y fáciles de adivinar para los bots
- Los navegadores adjuntan cookies a las peticiones entre sitios (Opción correcta)
- El sitio objetivo no tiene HTTPS
- La API usa cuerpos JSON en lugar de datos de formulario
Respuesta
Los navegadores adjuntan automáticamente las cookies a las peticiones entre sitios, así que una página maliciosa puede disparar acciones autenticadas
Por qué
Tienes la sesión iniciada en bank.com, así que tu navegador guarda su cookie de sesión. Visitas evil.com, que envía en secreto un formulario a bank.com/transfer. Tu navegador añade la cookie del banco automáticamente, así que el banco cree que lo enviaste TÚ.
Eso es CSRF (Cross-Site Request Forgery).
Defensas: cookies SameSite=Lax o Strict, tokens anti-CSRF en los formularios, comprobar el header Origin y no cambiar nunca datos con GET.
Recuerda
CSRF = otro sitio usa tus cookies de sesión. Usa SameSite + tokens CSRF.