javascript - 如何安全地(通过适当的身份验证)与客户端上的第 3 方 api 通信?

标签 javascript security authentication oauth client-side

考虑网站使用付费分析包跟踪用户在该网站上的行为的用例。

在这种情况下,网站需要与分析提供商的 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/

相关文章:

php - 使用 PHP/MySQL 登录中断并返回页面

authentication - 带有自定义 Web 应用程序自己的 SignOn 机制的 Shibboleth

javascript - 无法触发 HTML5 音频的 "durationchange"

javascript - 在粘贴事件中获取文档中粘贴的内容

c# - ASP.net 在上传/解密给用户后加密文件

c# - 路径操纵(安全漏洞)

authentication - 没有 cookie 的用户/浏览器指纹识别

javascript - 根据js确认执行按钮onclick Action

javascript - 正则表达式 Camel 化字符串中的特定文本

http - 只有通过 https 的 uname/pwd 验证 - http 中的所有其他内容