在地图API浏览器密钥上设置HTTP Referer会导致403错误。

18

我对Google Maps API浏览器密钥上的HTTP Referrer设置工作原理感到困惑。

我正在构建一个网页,该网页以编程方式从Google Maps请求图像(主要是Google Maps Street View Image API,但还包括一些来自Javascript API的MaxZoomService和Static Maps API的查询)。

如果我创建一个没有HTTP Referrer的浏览器密钥,它运行得很好。

如果我创建一个具有与加载页面相匹配的HTTP Referrer的浏览器密钥,我会收到403错误。我使用像*.mydomain.com/*这样的引荐者。

发生了什么?如果我将HTTP Referrer设置为与加载页面匹配的域,那不就是引荐者的正确用法吗?我可以不用它,但担心这会让别人获取我的密钥并使用它。我是否误解了引荐者的工作原理?


1
可能是Google Maps API Referer 403错误的重复问题。 - Chuck Le Butt
2个回答

14
根据控制台中HTTP引用程序占位符,*.example.com/*应该可以正常工作。 然而实际上并非如此! 我通过简单地将引荐人设置为example.com来解决了这个问题。 要获取更多信息,请查看注册授权URL。祝你好运!

4
谢谢。实际上,它的操作方式与文档中描述的不同,只能按照您的回答进行操作。 - besciualex
是的,他们的文档很糟糕 - 我打开了一个支持案例,因为我花了很长时间才弄清楚为什么它不起作用,直到我找到了这个SO Q/A。他们的关注度为0。 - Luke

8
如果您使用 *.example.com/*,那么您必须来自于 www.example.com 或其他子域名,但如果您来自于 example.com(注意URL中第一部分的句点),这种方法将不起作用。
如果您有某种重定向到 example.com 的方式,并且去除了URL的第一部分,则在这种情况下最好使用的正则表达式是简单的 *example.com/* ,它将覆盖example.com后面所有的子域名、http或https以及域名之后的所有上下文。
希望对您有所帮助。

13
这样做会不会允许其他人从引荐网址anotherexample.com使用相同的API密钥? - jayp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接