我很想知道基于网址的API密钥限制是如何工作的,例如Google用来保护其Google地图服务的限制。

根据我从本文中的理解“限制访问Ajax服务,"涉及两个部分:首先,服务使用单向散列函数为给定域创建特定密钥;第二,服务根据Referer头验证密钥。

虽然文章很明确,但我仍然有一个问题,试图了解验证方法的安全性。我的意思是,如果仅针对引用者检查密钥,这不是很容易伪造的吗?我在想一个简单的“127.0.0.1 www.mydomain.com”。在hosts文件中将足以欺骗验证,并认为引用者是www.mydomain.com。

我可能误解了一些事情,并且会得到一些澄清。

有帮助吗?

解决方案

“限制”您引用的文章部分特别提到欺骗推荐人的可能性。

更改主机文件可能确实足以伪造您的引荐来源,但仅限于您从自己的计算机访问网站时。这意味着您只能在本地测试时滥用许可证。这不是非常有趣的滥用。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top