2012-05-10 59 views
4

我正在考虑Google静态地图API,它将您限制为1000张静态地图,如果您注册了一个帐户,则会更多。当客户端上的所有内容都是公开的时,他们如何跟踪账户等?浏览器内客户端API的身份验证?

对于大多数服务器到服务器API,我给了一个access_token/key/etc。我可以传递给服务来证明我确实是我,但在客户端上有任何这样的access_token/key /等。会立即成为公众的知识。

一般来说,客户端库(FB SDK,Stripe,Google等)使用哪些策略来执行身份验证,以及他们如何解决客户端上的所有内容都是公开的事实?

+0

使用Google静态地图,仍需要从Google服务器请求地图图片,因此当时可以检测到使用情况;他们可能会使用客户端发送的HTTP referer信息将每个请求分配给一个帐户。你究竟想要完成什么? – eggyal

+0

我想我的问题是:谷歌如何知道它实际上是我的网站上要求图像的页面?什么阻止某人从我的一个页面复制URL,更改参数并在整个站点上使用它,在过程中使用配额? –

+0

用户的浏览器在Google的请求信息中包含引用页面的地址...而用户自己可以操纵该信息来误报其他人的网站(为了什么目的?),但这不是另一个网站的内容能够以你描述的方式去做。 – eggyal

回答

1

您可以将您的API密钥配置为白名单by host,它告诉Google地图只允许从发送与您的白名单相匹配的引荐来源的网站使用API​​密钥。

如果其他网站使用您的API密钥,他们会在负载收到此错误信息:

此网站需要不同的谷歌地图API密钥。新密钥可以在http://code.google.com/apis/maps/documentation/javascript/v2/introduction.html#Obtaining_Key生成。

您可以通过使用FireFox中RefControl extension验证这个自己:

这样做是因为:

  • 几乎所有的Web浏览器发送一个引用(i.e., the URI of the resource which links to it)作为请求的一部分。
  • 对于有人窃取您的API密钥(因为如您所说,它是一个公开可用的字符串),他们需要告诉所有的用户重写他们的引用来匹配他们偷取它的网站(这显然是不实际的)。

请注意,Google似乎允许不包含引荐来源的请求 - 我想配置为排除此信息的浏览器数量很少,因此不值得关注。

相关问题