4

我很想知道基于 URL 的 api 密钥限制是如何工作的,例如谷歌用来保护其谷歌地图服务的那个。

根据我从这篇文章“限制对 Ajax 服务的访问”的理解,这涉及到两个部分:首先,服务使用单向哈希函数为给定域创建特定密钥;其次,服务根据 Referer 标头验证密钥。

虽然这篇文章的解释性很强,但我仍然无法理解验证方法的安全性。我的意思是,如果只针对引用者检查密钥,这不是很容易伪造吗?我认为主机文件中的简单“127.0.0.1 www.mydomain.com”足以欺骗验证,并认为引用者是 www.mydomain.com 。

我可能误解了一些事情,一些澄清将不胜感激。

4

1 回答 1

1

您引用的文章的“限制”部分特别提到了欺骗引荐来源网址的可能性。

更改主机文件可能确实足以伪造您的推荐人,但仅当您从自己的计算机访问该站点时。这意味着您只能在本地测试时滥用许可证。这不是很有趣的滥用。

为了发布您的应用程序,您需要在每个人的浏览器上欺骗引荐来源网址,除非您使用本地运行的可执行文件中的 API,在这种情况下,您可能完全控制所有标头。

于 2009-06-21T15:24:57.297 回答