最近、PortSwigger(Burp Suiteの背後にいる人)が、CORSの誤った構成に関連するセキュリティリスクについて議論するブログ投稿を発表しました。
http://blog.portswigger.net/2016/10/exploiting-cors-misconfigurations-for.html
要約すると、このブログでは、悪意のあるWebサイトがターゲットサイトからデータを読み取ることができるCORSを有効にする安全でない方法について説明しています。最後に向けて、ブログではVary: Origin
ヘッダーを含む防止メカニズムについて説明しています。
CORS仕様の「実装に関する考慮事項」セクションを見ると、Access-Control-Allow-Originヘッダーが動的に生成されるたびに、開発者が「Vary:Origin」HTTPヘッダーを指定するように指示されていることがわかります。
Access-Control-Allow-Origin
ヘッダーが動的に生成される(クライアントによって制御される)シナリオで、VaryヘッダーがCORSの悪用(キャッシュポイズニングを使用するXSS)をどのように防ぐのに役立つかを理解するのに苦労しています。
キャッシュを防ぐために、Vary: Origin
ヘッダーを含めることが重要です。ヘッダーは、応答が何らかの方法でオリジンに依存しているため、他のオリジンのキャッシュから提供されるべきではないことを示しています。ヘッダーがない場合、記事で説明されているように、反映されたカスタムヘッダーを介したXSSの例でキャッシュポイズニング攻撃が行われる可能性があります。 Vary
ヘッダーがない場合、それ自体で脆弱性が生じることはありません。