我们正在创建一个这样划分的在线服务: - 一个 API,当然 - 完整的 JS/AJAX 客户端,没有 MVC,它是纯 JS
我们是经验丰富的开发人员,我们确实知道我们无法保护 JS 客户端代码,但是,我们正试图通过分析我们的 JS API 调用来防止第三方创建他们自己的客户端,并且这种方式仅限制来自我们的访问自己的客户。
提前致谢!
我们正在创建一个这样划分的在线服务: - 一个 API,当然 - 完整的 JS/AJAX 客户端,没有 MVC,它是纯 JS
我们是经验丰富的开发人员,我们确实知道我们无法保护 JS 客户端代码,但是,我们正试图通过分析我们的 JS API 调用来防止第三方创建他们自己的客户端,并且这种方式仅限制来自我们的访问自己的客户。
提前致谢!
我们是经验丰富的开发人员,我们确实知道我们无法保护 JS 客户端代码,但是,我们正试图通过分析我们的 JS API 调用来防止第 3 方创建他们自己的客户端,这样只能限制我们的访问自己的客户。
这在术语上是矛盾的。如果您知道客户端 ECMAscript 代码永远无法隐藏,那么任何有一定经验的开发人员都可以分析您的代码。即使被严重混淆、缩小和丑化。
通过密码使用服务器端身份验证。它是唯一安全的方式。您只是无法阻止有人克隆/复制您的脚本。
我不认为你可以。也许生成一个密钥或其他东西来授权请求。
对于您和任何有类似问题的人,请注意;是不可能的。如果您向用户发送将与您的 API 通信的工作代码,那么您无法停止修改或重写该代码。您可以确保安全的唯一区域是后端。
哦,这是一个错误的问题。
您需要问的问题是“我为什么要关心有人在没有我的客户端的情况下访问我的服务器?”
你显然是有原因的。我只能想到一个原因 - 您的服务器信任客户端表现良好。不要那样做。确保服务器可以处理任何类型的滑稽客户端请求。它不必很好地处理它(抛出 500 服务器错误是可以的) - 只要流氓客户端不能弄乱您的数据或完全杀死您的服务器。
您可以尝试混淆您的 javascript 代码以使其难以阅读:
你可以找到外星人
如果您有身份验证,您可以将会话 ID 传递给您的 API 以保持用户登录,因此如果用户未经过身份验证,他将无法从您的 API 获取数据。