Después de leer sobre CORS, no entiendo cómo mejora la seguridad.
CORS no mejora la seguridad. CORS proporciona un mecanismo para que los servidores le digan a los navegadores cómo deben acceder los dominios extranjeros, e intenta hacerlo de una manera que sea consistente con el modelo de seguridad del navegador que existía antes de CORS (es decir, la Política del Mismo Origen ).
Pero la Política de Mismo Origen y CORS tienen un alcance limitado. Específicamente, la especificación CORS en sí no tiene ningún mecanismo para rechazar solicitudes. Puede usar encabezados para decirle al navegador que no permita que una página de un dominio externo lea una respuesta. Y, en el caso de las solicitudes de verificación previa, puede pedirle al navegador que no le envíe ciertas solicitudes de un dominio extranjero. Pero CORS no especifica ningún medio para que el servidor rechace (es decir, no ejecute) una solicitud real.
Pongamos un ejemplo. Un usuario inicia sesión en el sitio a Através de una cookie. El usuario carga un sitio malicioso M, que intenta enviar un formulario que hace un POSTa A. ¿Lo que sucederá? Bueno, con o sin CORS, y con o sin Mser un dominio permitido, el navegador enviará la solicitud a Acon la cookie de autorización del usuario, y el servidor ejecutará el malicioso POSTcomo si el usuario lo hubiera iniciado.
Este ataque se denomina Falsificación de solicitudes entre sitios y CORS no hace nada para mitigarlo. Es por eso que las protecciones CSRF son tan importantes si permite solicitudes para cambiar datos en nombre de los usuarios.
Ahora, el uso del Originencabezado puede ser una parte importante de su protección CSRF. De hecho, verificarlo es parte de la recomendación actual para la defensa CSRF de múltiples frentes . Pero ese uso del Originencabezado queda fuera de la especificación CORS.
En resumen, CORS es una especificación útil para extender el modelo de seguridad de la Política del Mismo Origen existente a otros dominios aceptados. No agrega seguridad y los sitios necesitan los mismos tipos de mecanismos de defensa que tenían antes de CORS.