5

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

首先,我应该担心吗?我想在我的 Web 应用程序中优先考虑安全性,但是任何涉及修改用户帐户的操作都需要一个临时的加密令牌来授权请求​​(除了 HMAC 哈希)。

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

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

4

1 回答 1

6

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

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

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

于 2013-09-29T06:01:15.567 回答