考虑网站使用付费分析包跟踪用户在该网站上的行为的用例。
在这种情况下,网站需要与分析提供商的 API 进行安全通信(所有客户端都通过 javascript)。
如何安全地完成这项工作?根据我对各种身份验证协议(protocol)的理解,始终需要一个 secret token 来设置客户端和服务器之间的 secret 握手。使用 oAuth1a,这一切都打包在 HMAC 等中,但 secret 仍然必须可用。
鉴于:
- 密码必须在 javascript 中可供客户端使用,以进行经过身份验证的调用
- 显然任何人都可以检查客户端上的 javascript
您将如何保守 secret ?看起来你不能,但是所有这些通过客户端 JS 通信的付费第 3 方服务如何保证安全?
最佳答案
正如下面引用的答案所规定的,Google Maps API 似乎正在使用 HOST header 执行此操作,这显然(?)无法被欺骗。
How does Google Maps secure their API Key? How to make something similar? .
因此,有一个使用 <apikey -> allowed HOST headers>
映射的服务器端映射会成功的。
关于javascript - 如何安全地(通过适当的身份验证)与客户端上的第 3 方 api 通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18896255/