发起CORS请求时,如果请求的源站在允许源站列表中,则响应中会同时包含Access-Control-Allow-Origin
头部和Vary: Origin
头部。
value : Origin告诉negotiated等,响应是根据请求者的Origin标头值协商的。
问题是(我已经测试了主要的CDN提供商),如果请求者没有在他们的请求中提供Origin头部,或者一个不是允许的Origin值,那么响应就不会在响应中包含value : Origin。
预制CORS的CDN是否应该总是在响应头部中返回value : Origin?如果不是,CDN会认为它可以为任何Origin值提供相同的响应。然后,可以通过使用随机原始值发出许多请求来填充CDNs缓存。
发布于 2014-08-16 00:02:11
是。如果请求可能包含具有不同值的Access-Control-Allow-Origin
,则CDN应始终使用Vary: Origin
进行响应,即使是没有Access-Control-Allow-Origin
header的响应。您的分析是正确的:如果头部并不总是存在,则可能会用不正确的值填充缓存。
https://stackoverflow.com/questions/25329405
复制相似问题