繁体   English   中英

带有Cloudformation的AWS Api Gateway CORS“访问控制允许起源”正则表达式

[英]AWS Api Gateway CORS “access-control-allow-origin” Regex with Cloudformation

AWS Api Gateway中是否可以为CORS标头使用通配符子域?

例如(模拟集成摘录)

"ResponseParameters":{
              "method.response.header.Access-Control-Allow-Origin": "'http:\/\/*.example.com'",
              "method.response.header.Access-Control-Allow-Headers": "'Content-Type, X-Amz-Date, Authorization, X-Api-Key, X-Amz-Security-Token'",
              "method.response.header.Access-Control-Allow-Methods": "'GET', 'OPTIONS'"
            }

当前,我收到错误消息,指出CORS标头与Access-Control-Allow-Origin中的内容不匹配。

API网关会将Access-Control-Allow-Origin中的值返回给浏览器,因此它将返回一个通配符,如您的示例所示; 但是,这将无济于事,因为CORS规范不支持部分通配符,因此浏览器不会对其进行处理。 CORS规范确实允许返回星号('*')以允许所有来源。

显然,如果只需要允许一个原点,则只需完全指定它即可。 一些需要允许多个来源的客户返回星号,从而允许所有来源。 如果必须只允许起源的子集,则可以做到这一点,但是您将无法为标头使用静态值(如API Gateway控制台中的CORS向导那样)。 您将必须使用Lambda或http集成来实现HEAD方法,将“ Referer”标头传递给您的集成,让您的集成将“ Referer”标头与您拥有的所有来源的列表进行比较,并有条件地返回映射到“ Access-Control-Allow-Origin”标题的值。 您还必须在对资源调用的任何其他方法(GET,POST等)上包括类似的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM