2

也许我在要求一些不可能的事情,但我们开始吧:我正在尝试找到一种方法来验证客户端对 API 的请求,但是一些客户端只能使用 JavaScript 来发送他们的请求(他们使用托管服务,而这些服务不支持允许编写单行服务器端代码)。这意味着任何 API 密钥、秘密或哈希都必须由 JavaScript 处理,从而有效地使它们无用。

我见过一些 API 使用了严重混淆的代码,但在我看来,这种方法给人一种虚假的安全感(可以使用 JavaScript Beautifier 轻松读取)。有没有更好的方法?

提前感谢所有答案。

4

2 回答 2

2

不,JavaScript 是开放的,这意味着零安全性。

最明智的做法是通过您拥有的服务器代理 API,然后让人们使用他们的密钥注册到服务器。

这意味着即使他们没有任何服务器端代码,也没关系,因为您为他们托管服务器。

于 2012-04-05T20:53:26.167 回答
2

真的没有办法完全使用 JavaScript 来做到这一点。我曾经使用过的唯一选项是限制 IP 地址或JavaScript 客户端的某种其他形式的身份验证。在身份验证/授权之后,然后通过 HTTPS 将它们的密钥传递给客户端,该密钥仅在客户端保留一段时间(即不存储在任何地方)。

缺点是聪明的恶意用户可以很容易地调试到 JavaScript 并确定这个密钥。

于 2012-04-05T20:56:10.543 回答