2011-02-05 61 views
6

我见过像Google这样的服务,需要您在创建JavaScript调用时添加API密钥,就像这样。当看到js代码的任何人都可以看到javascript API key的时候点什么

https://www.google.com/jsapi?key=thekeygoeshere 

当代码可以被看到并且密钥可以被读取时,这个javascript api键有什么意义。有人不能复制这个密钥并将其用于他们自己的网站?还是有其他的事情,他们在后台做,以确保密钥属于网站拨打电话?

回答

6

推测他们检查引用HTTP头。

大多数用户发送它。所以,如果是:

  • ,关键匹配的网站,就可以正常运行。
  • 如果网站与密钥不匹配,他们可以拒绝该请求。
  • 空白,他们可以正常运行,并允许一小部分人在错误的网站上使用API​​。

大多数使用错误密钥的网站访问者都会被阻止,因此首先在网站上使用错误的密钥是不值得的。

+0

这将是相当危险的,因为Referer-Header可以根据标准为空(并且对于许多用户而言,因为他们不希望网站知道他们以前在哪里)。 – anroesti 2011-02-05 14:11:31

+0

更新了答案,解释了为什么它没有真正的风险。 – Quentin 2011-02-05 14:20:06

0

谷歌代码将使用AJAX或类似的东西,将打电话给他们的服务器详细说明您的密钥,以及它正在使用的网站的网址。然后谷歌可以检查它是否为该密钥的正确站点,如果不是则停止工作。

虽然,地图API似乎可以在任何网站上使用任何键。

相关问题