Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不使用SSL散列密码的最佳实践_Php_Javascript_Passwords_Security - Fatal编程技术网

Php 不使用SSL散列密码的最佳实践

Php 不使用SSL散列密码的最佳实践,php,javascript,passwords,security,Php,Javascript,Passwords,Security,我知道这个问题听起来可能已经得到了回答,但请继续回答我。我有一个网站,需要用户注册和登录。在这个过程中,让我们先注册,用户将提供用户名和密码,系统将检查这些信息,然后在将密码存储到数据库之前,向自己发布PHP脚本以对密码进行加密和散列 现在我认为这是安全的,salt和散列密码始终是最佳实践,但最近我想到了这是如何发生的,数据必须先发送到服务器才能散列,因为我不使用SSL,用户名和密码未加密发送,那么,我假设这些信息将以纯文本形式发送是否正确 如果是这样,这一点都不好。因此,我能看到的唯一两种方法

我知道这个问题听起来可能已经得到了回答,但请继续回答我。我有一个网站,需要用户注册和登录。在这个过程中,让我们先注册,用户将提供用户名和密码,系统将检查这些信息,然后在将密码存储到数据库之前,向自己发布PHP脚本以对密码进行加密和散列

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

如果是这样,这一点都不好。因此,我能看到的唯一两种方法是:

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

  • 在信息离开用户之前对其进行散列,这可以使用Javascript完成

  • 我想实现第二个,但我不确定如何实现。这方面的最佳做法是什么

    我在想,在发送信息之前,AJAX脚本将控制数据并检查信息是否是我们要查找的,然后对信息进行筛选和散列

    我所描述的这个实现是否有任何安全影响


    谢谢您的时间。

    您可能会对这个项目感兴趣

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

    是的,做这个

    在信息离开用户之前对其进行散列,这可以使用Javascript完成


    这将无法保护数据。相反,它将有效地将要发送到服务器的机密数据更改为密码的哈希版本。这仍然会以纯文本的形式发送,攻击者可以嗅出它,并准确地知道要发送什么。

    问题是,您将散列算法和salt暴露给客户端,然后攻击者可以找出这些算法。我个人认为SSL是最安全的选择。当使用javascript以某种方式保护它时,有没有办法?这样做总是帮助我建立JavaScript技能。我建议你阅读本页。正如Lloyd所指出的,解决方案2的问题在于,用于加密的JavaScript仍然是以明文形式发送的,如果JS中有一个合适的随机数生成器(许多加密算法在明文中免费提供,没有问题),这将是很好的,但这目前是不可能的。