基于URL的API密钥限制:验证如何工作?
-
06-07-2019 - |
题
我很想知道基于网址的API密钥限制是如何工作的,例如Google用来保护其Google地图服务的限制。
根据我从本文中的理解“限制访问Ajax服务,"涉及两个部分:首先,服务使用单向散列函数为给定域创建特定密钥;第二,服务根据Referer头验证密钥。
虽然文章很明确,但我仍然有一个问题,试图了解验证方法的安全性。我的意思是,如果仅针对引用者检查密钥,这不是很容易伪造的吗?我在想一个简单的“127.0.0.1 www.mydomain.com”。在hosts文件中将足以欺骗验证,并认为引用者是www.mydomain.com。
我可能误解了一些事情,并且会得到一些澄清。
解决方案
“限制”您引用的文章部分特别提到欺骗推荐人的可能性。
更改主机文件可能确实足以伪造您的引荐来源,但仅限于您从自己的计算机访问网站时。这意味着您只能在本地测试时滥用许可证。这不是非常有趣的滥用。
要发布您的应用,您需要在每个人的浏览器上欺骗引荐来源,除非您使用本地运行的可执行文件中的API,在这种情况下,您可能在完全控制所有标题。
不隶属于 StackOverflow