Authentication 浏览器内客户端API的身份验证?

Authentication 浏览器内客户端API的身份验证?,authentication,client,Authentication,Client,我想到的是谷歌静态地图API,它将你的静态地图数量限制在1000张以内,如果你注册了一个帐户,这个数量会更多。当客户的所有信息都是公开的时,他们如何跟踪账户等 对于大多数服务器到服务器API,我都有一个访问令牌/密钥/等,我可以将其传递给服务以证明我确实是我,但在客户机上,任何此类访问令牌/密钥/等都将立即成为公共知识 一般来说,客户端库(FB SDK、Stripe、Google等)使用什么策略来执行身份验证,客户机上的所有内容都是公开的,他们如何规避这一事实?您可以将API密钥配置为白名单,这

我想到的是谷歌静态地图API,它将你的静态地图数量限制在1000张以内,如果你注册了一个帐户,这个数量会更多。当客户的所有信息都是公开的时,他们如何跟踪账户等

对于大多数服务器到服务器API,我都有一个访问令牌/密钥/等,我可以将其传递给服务以证明我确实是我,但在客户机上,任何此类访问令牌/密钥/等都将立即成为公共知识


一般来说,客户端库(FB SDK、Stripe、Google等)使用什么策略来执行身份验证,客户机上的所有内容都是公开的,他们如何规避这一事实?

您可以将API密钥配置为白名单,这会告诉Google Maps只允许从发送与您的白名单匹配的推荐人的站点使用API密钥

如果其他站点使用您的API密钥,则加载时会收到以下错误消息:

此网站需要不同的Google Maps API密钥。可以在以下位置生成新密钥

您可以使用FireFox的:

  • 使用扩展名覆盖你的推荐人,比如
  • 访问非谷歌托管的谷歌地图示例站点-例如
  • 你应该得到这个错误
这是因为:

  • 实际上,所有的web浏览器都会在请求中发送推荐人
  • 如果有人盗取你的API密钥(正如你所说,这是一个公开可用的字符串),他们需要告诉所有用户覆盖他们的推荐人,以匹配他们盗取API密钥的站点(这显然是不切实际的)

请注意,谷歌似乎允许不包含引用人的请求-我猜配置为排除此信息的浏览器数量很小,因此不值得关注。

使用谷歌静态地图,用户仍然需要从谷歌服务器请求地图图像,因此可以在那时检测使用情况;他们可能使用客户端发送的HTTP引用信息将每个请求分配给一个帐户。你到底想做什么?我想我的问题是:谷歌怎么知道它实际上是我网站上请求图片的页面?是什么阻止某人从我的某个页面复制URL、更改参数并在自己的网站上使用URL、在这个过程中用完我的配额?用户的浏览器在其向Google请求的标题信息中包含引用页面的地址。。。虽然用户自己可以操纵它来误报别人的站点(目的是什么?),但这不是其他站点能够以您描述的方式做到的。@eggyal您能详细说明一下吗?我不知道referer头信息是如何工作的,也不知道如何获取/使用它作为服务器或使用S3/cloudfront。当浏览器从包含在引用页面URL“”中的Web服务器请求资源时,我可以在上面学习的链接也将非常棒(=)。因此,服务器可以确定(例如)它所服务的图像嵌入在哪个页面上(前提是浏览器未被操纵以误报此信息)。您如何阅读这篇文章将取决于使用的服务器端技术:例如,在PHP中,您可以只进行检查。