amp;cdn&;对资源的cors请求

amp;cdn&;对资源的cors请求,cors,amp-html,Cors,Amp Html,我正在从事一个项目,其中保护资源(此处:webfonts)是一项法律要求,CORS被认为是足够的。通过AMP CDN访问CORS保护的资源似乎是不可能的 我们如何处理原产地的cors 对于受保护的资源,我们根据正则表达式检查Origin:请求头,并为匹配生成匹配的Access Control Allow Origin:response头加上Vary:Originalways 本质上(简化、简化的示例): curl-H'Orgin:https://allowed.domain“-我https:/

我正在从事一个项目,其中保护资源(此处:webfonts)是一项法律要求,CORS被认为是足够的。通过AMP CDN访问CORS保护的资源似乎是不可能的

我们如何处理原产地的cors 对于受保护的资源,我们根据正则表达式检查
Origin:
请求头,并为匹配生成匹配的
Access Control Allow Origin:
response头加上
Vary:Origin
always

本质上(简化、简化的示例):

  • curl-H'Orgin:https://allowed.domain“-我https://site/.../font.woff2
->

  • curl-H'Orgin:https://evil.domain“-我https://site/.../font.woff2
->

这是简单的CORS

amp cdn如何工作 现在,当我对相应的AMP CDN URL发出相同的请求时

curl -H 'Orgin: https://allowed.domain' -I https://site.cdn.ampproject.org/r/s/site/.../font.woff2
我看到一个请求进来了

User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Google-AMPHTML)
从IP解析到
googleproxy-*.google.com
,但既不是
来源:
也不是
AMP同一来源:
请求头。然而,我阅读的方式至少应该是这样

如果Origin:以
cdn.ampproject.org
结尾似乎无关紧要,cdn似乎不会转发它

因此,我们的原点响应为200,没有A-C-A-O,如上所示

更令人困惑的是,amp cdn向下游发送此响应:

HTTP/2 404 
access-control-allow-origin: *
x-content-type-options: nosniff
...

那么,CORS应该如何与AMP CDN上的资源协同工作呢?

这是一个实际的AMP CDN问题。我与谷歌的联系人进行了1:1的合作,他们已经解决了这个问题


此外,我们的源站没有发送所需的
内容类型
响应标题。

请尝试查看有关的文档。'本文档解释了在AMP中使用CORS的关键方面。希望它能对您有所启发。@MαπμQμαπkγVπ。0我确实读过它,它涵盖了这个主题,但CDN的行为并不像预期的那样。特别是,它不转发原始标题的事实没有被涵盖,在我看来是完全错误的。现在也通过github报告:
User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Google-AMPHTML)
HTTP/2 404 
access-control-allow-origin: *
x-content-type-options: nosniff
...