【问题标题】:How to Encrypt password for REST API authentication如何加密密码以进行 REST API 身份验证
【发布时间】:2015-07-22 16:21:11
【问题描述】:

有很多关于如何保护 REST API 访问的资源,但这不是我想要的。我将使用提供的带有 Basic Authentication 的 REST API(这不能轻易更改:()。

显然我可以选择:

var requestOptions = {
    hostname: "rest.api.url.com",
    path: "/path/",
    auth: "username:password"
};

var req = http.request(requestOptions, function (res) {
    // some code here
    });

有没有办法在脚本中不提供纯文本密码?

【问题讨论】:

    标签: javascript rest restful-authentication


    【解决方案1】:

    有没有办法在 [JavaScript] 中不提供纯文本密码?

    客户端 JavaScript 总是容易受到篡改和修改,包括反转您存储在客户端脚本中的任何“加密”密码。你可以随意混淆你的代码,但如果密码以任何形式出现在你的客户端脚本中,它是可以访问的。

    我将使用提供的带有基本身份验证的 REST API(这不能轻易更改

    由于您无法将 REST API 更改为使用令牌或 SSL 之类的东西,因此想到的一种解决方案是在您的服务器和 REST API 之间建立一个中介确实如此use SSL。与服务器上的某些服务器端脚本进行安全通信,并让该脚本代理来自 REST API 的请求和响应。

    资源:

    【讨论】:

      【解决方案2】:

      您可以使用您喜欢的任何加密对其进行编码,但是您的加密技术仍然存在于客户端。正确的做法是设置 SSL 证书,以便您的请求使用证书加密。

      此外,为了减少向周围发送密码的需要,您可能需要考虑使用某种基于令牌的身份验证。

      【讨论】:

      • 这不是在 REST API 实现方面引入变化吗?
      • 是的,您必须更改服务器端。无论如何,如果您想加密密码 - 您将不得不更改服务器端的实现。解密它
      • 您还应该对密码使用加盐哈希以采取进一步的安全措施。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 2015-12-28
      • 1970-01-01
      • 2016-09-16
      • 2022-12-16
      • 2013-03-03
      • 2014-05-30
      相关资源
      最近更新 更多