Recientemente, PortSwigger (los que están detrás de Burp Suite) publicaron una publicación en el blog que analizaba los riesgos de seguridad asociados con las configuraciones erróneas de CORS.
En resumen, el blog habla sobre formas inseguras de habilitar CORS que pueden permitir que los sitios web maliciosos lean datos de un sitio de destino. Hacia el final, el blog habla sobre un mecanismo de prevención que involucra el encabezado Vary: Origin
:
Si echa un vistazo a la sección 'Consideraciones de implementación' en La especificación CORS, notará que instruye a los desarrolladores. Especifique el encabezado HTTP 'Variar: Origen' cada vez que Los encabezados de Access-Control-Allow-Origin se generan dinámicamente.
Me está costando entender cómo exactamente el encabezado Vary ayuda a prevenir la explotación de CORS (XSS usando el envenenamiento de caché) en un escenario donde el encabezado Access-Control-Allow-Origin
se genera dinámicamente (controlado por el cliente).