php - 不使用 SSL 对密码进行哈希处理的最佳实践

标签 php javascript passwords security

我知道这个问题听起来可能已经有了答案,但请继续听我说。我有一个网站,需要用户注册并登录。在此过程中,让我们注册用户将提供用户名和密码,系统将检查信息,然后 POST 到自身,以便 PHP 脚本进行加盐和哈希处理将密码存储到数据库之前。

现在我认为这是安全的,加盐和散列密码始终是最佳实践,但最近我想到这是如何发生的,数据必须先发送到服务器,然后才能进行散列,因为我不这样做使用 SSL,用户名和密码以未加密的方式发送,所以我假设此信息将以纯文本形式发送是否正确?

如果是这样的话,这根本就不好。因此,我能想到的解决这个问题的唯一两种方法是:

  1. 使用 SSL 保护用户和服务器之间的连接,并对发送的数据进行加密。

  2. 在信息离开用户之前对信息进行哈希处理,这可以使用 Javascript 来完成

我想实现第二个,但我不知道如何做到这一点。对此的最佳实践是什么?

我在想,在发送信息之前,AJAX 脚本将控制数据并首先检查该信息是否是我们要查找的信息,然后对信息进行加盐和哈希处理。

我所描述的这个实现是否存在任何安全隐患?

感谢您的宝贵时间。

最佳答案

Using SSL and securing the connection between the user and the server and encrypting the data being sent.

是的,这样做。

Hashing the information before it leaves the user, this could be done using Javascript

这不会保护数据。相反,它会有效地将发送到服务器的 secret 数据更改为密码的哈希版本。它仍然会以纯文本形式发送,攻击者可以嗅探它并确切地知道要发送的内容。

关于php - 不使用 SSL 对密码进行哈希处理的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15292586/

相关文章:

javascript - 使 d3 v4 组对模拟使用react

javascript - 可以使用 "alias"或 "macro"来调用 HTML 中的 JavaScript 函数吗?

javascript - 在 Vue.js 中,当按下回车键时,向文本输出添加一个 <br> 标签

正则表达式验证密码强度

php - 如何在同一个 php 脚本中销毁两个不同的 session ?

php - 如何在 Magento 管理网格中的自定义渲染器上创建 filter_condition_callback?

php - 选择所有选项值 php mysql

JavaScript PHP 引导通知

php - 如何使用河豚散列长密码(> 72 个字符)

encryption - 对于紧急情况 : share part of pass with 4 people, 可解密 2 人