保护客户端上的API密钥(JavaScript,Android,iOS等)

Sam*_*Sam 5 javascript security api

我正在开发一个以API为中心的Web应用程序,其中包含一个自定义授权方法,该方法包括根据请求方法构建字符串,URL,参数,公共API密钥以及由私有API密钥编码.这在服务器端工作正常,但在客户端,私有API密钥(和授权方法)将是易受攻击的.我花了最后一小时左右的时间来寻找保护这个API密钥的好方法,我能找到的最佳方法是通过我的服务器进行代理,但我仍然不确定100%.

首先,我应该担心吗?我想在我的Web应用程序中将安全性作为优先级,但是任何处理修改用户帐户的事务都需要一个临时的加密令牌来授权请求​​(除了HMAC哈希).

我对代理的理解是你会向你的服务器发出请求,然后用私钥加密并返回信息.但是服务器如何验证请求来自具有有效API密钥的源?

谁能提供任何关于我应该做什么的见解?我觉得这可能是任何客户端代码的漏洞,包括JavaScript,iOS和Android.

Ell*_*iot 6

你永远不能相信客户。即使你混淆了,仍然有人可以弄清楚。例如,攻击者可以对混淆算法进行逆向工程,查看设备内存,甚至捕获通过线路发送的内容。

但是,您仍然可以通过在服务器端实施安全性来制作安全的应用程序。例如,用户应该需要经过身份验证才能成功发出特权 API 请求。

此外,您可以在服务器端强制使用 API,无论是通过输入验证、速率限制还是 IP 地址跟踪。

  • @sam 确认是为了让用户确保他们输入了他们认为输入的内容。以错误的方式输错两次密码的可能性较小。 (2认同)