【问题标题】:Only allow backbone access to my API?只允许主干访问我的 API?
【发布时间】:2014-04-04 13:59:09
【问题描述】:

我有一个我正在为我的网站外部的 Web 应用程序使用的 API。我正在使用的 API 的 ToS 明确指出,我无法以用户可以从我的数据生成提要的方式向我的用户提供这些数据。

我想为我的网络应用使用主干。但是,使用带有 rails 的主干需要我生成从控制器到主干的 json 响应。我知道这是必要的,但我希望这是安全的。

我在这里阅读了许多关于保护骨干实施的主题,但我找不到任何可以解决我的具体问题的主题。我有不需要登录即可使用我的网站的用户。这些用户可以看到我提供的数据。如果我使用主干,这意味着他们可以向我的控制器执行与主干相同的请求,并且有一个 API 可供他们编写机器人使用。

有什么方法可以阻止用户查看我的 javascript、查看我正在拨打的电话并编写机器人?也就是说,我能否确保只有我的主干 javascript 可以与我的控制器对话,而其他人无法获得 JSON 化响应?

【问题讨论】:

    标签: javascript ruby-on-rails json api backbone.js


    【解决方案1】:

    简而言之,不:根据定义,所有 JavaScript 都必须在客户端计算机上运行,​​这意味着您无法阻止用户访问该 JS(如果可以,他们将无法运行您的网站)。

    您可以使用 Uglify 或 Google Closure 编译器等工具“修改”您的代码。这些工具将变量名称(例如var SECRET_KEY = 12345)替换为更短的、无意义的名称(例如var AB = 12345),并执行其他可能使他人难以理解您的代码的事情。

    但是,这些工具只会让您难以找到您的密钥(例如,12345);密钥(以及应用程序的所有其余数据)仍将存在于源中。

    如果您确实需要对用户隐藏某些数据,则必须将这些数据保存在服务器上(这意味着您必须始终间接使用该 API,但要与您的服务器通信并让您的服务器通信给它)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      • 2016-07-23
      • 2014-11-20
      • 1970-01-01
      • 2021-12-31
      • 2016-12-01
      • 1970-01-01
      相关资源
      最近更新 更多