Recentemente PortSwigger (ragazzi dietro Burp Suite) ha pubblicato un post sul blog che parlava dei rischi per la sicurezza associati alle errate configurazioni CORS.
In sintesi, il blog parla di modi non sicuri di abilitare CORS che può consentire ai siti Web dannosi di leggere i dati da un sito di destinazione. Verso la fine, il blog parla di un meccanismo di prevenzione che coinvolge l'intestazione Vary: Origin
:
If you take a look at the 'Implementation Considerations' section in the CORS specification, you'll notice that it instructs developers specify the 'Vary: Origin' HTTP header whenever Access-Control-Allow-Origin headers are dynamically generated.
Sto avendo difficoltà a capire come esattamente l'intestazione Vary aiuta a prevenire l'utilizzo di CORS (XSS usando l'avvelenamento della cache) in uno scenario in cui l'intestazione Access-Control-Allow-Origin
viene generata dinamicamente (controllata dal client).