【问题标题】:URL-Based API Key Restriction: How does validation works?基于 URL 的 API 密钥限制:验证如何工作?
【发布时间】:2010-11-04 16:04:20
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您的链接好像有问题。如果你有机会更正它,我会很乐意看看!

标签: web-services api key api-key


【解决方案1】:

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

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

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

【讨论】:

  • 我现在明白了。但是,我认为,如果 API 密钥用于将数据写入服务,比如像 Google 的分析跟踪器,那么有人可以在自己的计算机上使用修改后的标头将虚假数据注入服务。实际上,我并没有看到太多这种类型的伪造品,但我认为理论上这是可能的。感谢您的宝贵时间、您的回答和修复我的链接。
猜你喜欢
  • 2021-10-15
  • 2013-02-15
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 2018-04-26
  • 2022-08-03
相关资源
最近更新 更多