【问题标题】:Should I hash passwords when sending using AJAX?使用 AJAX 发送时我应该散列密码吗?
【发布时间】:2014-09-26 00:07:55
【问题描述】:

在通过 ajax 发送以及在 php 中清理和验证登录时,我真的对哈希密码感到困惑。

我应该在通过 ajax 发送密码之前对密码进行哈希处理吗?如果我要清理和验证哈希密码并将另一个 ajax 哈希提交的哈希密码存储在数据库中呢?
我知道散列一个 javascript 散列密码在这里没有任何意义。

任何人都可以说出通过 ajax 发送密码和在 php 中进行清理/验证的最佳做法。

【问题讨论】:

    标签: php ajax hash passwords


    【解决方案1】:

    常见的方法是将密码作为纯文本发送到服务器(在您的情况下进行 AJAX 调用),然后在服务器中进行哈希处理,然后再访问数据库以创建新用户以检查输入的密码是正确的。

    【讨论】:

    • 除此之外,使用 SSL 证书可以帮助缓解发送纯文本密码的潜在安全问题并防止中间人攻击。
    • @SlitCanvas 这肯定是正确的,但这取决于他/她的应用程序中使用的架构。他/她可能不使用或可能使用 SSL 证书。一般来说,如果他/她使用 SSL 证书会更安全。
    • @Chirstos 是的,我已经在使用这种方法,然后我想到如果有人拦截网络并窃取登录信息怎么办。我知道我应该使用加密连接,但我读过密码应该在通过 ajax 发送之前进行加密。
    • @user3370495 为了避免网络拦截,最有效的方法是使用 SSL 证书。如果您使用 SSL 证书,则无需进行任何加密,所有保护客户端和服务器之间通信的工作都是通过 SLL 证书完成的。
    【解决方案2】:

    如果您不在网络上使用 HTTPS,您可能希望在客户端上执行散列,以使黑客更难检索明文密码。当然,最好还是使用 HTTPS。

    还有一个名为 Secure Remote Password 的加密协议,旨在让字典攻击用户的密码变得更加困难。但是,实施起来需要一些工作。

    http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol

    【讨论】:

      猜你喜欢
      • 2012-12-19
      • 2012-05-28
      • 2015-06-28
      • 2011-04-29
      • 2021-05-19
      • 2011-08-23
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      相关资源
      最近更新 更多