Php 以安全的方式向服务器发送密码
我目前正在为我的一个网站开发一个更好的登录例程,我希望能够安全地向服务器发送登录数据。关于这个话题有好几篇文章和帖子,但他们经常对如何做到这一点有不同的看法 从SSL开始,这里的每个人都站在同一个页面上:你应该使用SSL,我使用。然后有人说:“这就足够了,使用SSL您可以以明文形式发送username&PW”。我不同意。其他人说,它仍然应该被散列。我读了几篇文章,我觉得人们关心登录例程的不同方面,并提出了只处理他们的安全方面的机制 所以我想知道的是,到目前为止我所阐述的常规是否足够,是太多还是太少。我将尝试解释为什么我选择实现某个功能,以及我尝试涵盖的安全方面:Php 以安全的方式向服务器发送密码,php,security,ssl,encryption,login,Php,Security,Ssl,Encryption,Login,我目前正在为我的一个网站开发一个更好的登录例程,我希望能够安全地向服务器发送登录数据。关于这个话题有好几篇文章和帖子,但他们经常对如何做到这一点有不同的看法 从SSL开始,这里的每个人都站在同一个页面上:你应该使用SSL,我使用。然后有人说:“这就足够了,使用SSL您可以以明文形式发送username&PW”。我不同意。其他人说,它仍然应该被散列。我读了几篇文章,我觉得人们关心登录例程的不同方面,并提出了只处理他们的安全方面的机制 所以我想知道的是,到目前为止我所阐述的常规是否足够,是太多还是太
这是一个好办法吗?还是这太过分了?(会有太多的安全性吗?)或者您有其他解决方案吗?SSL很好,我不知道您为什么不同意。客户端散列仍然使PW在客户端和散列上都可见,因此没有任何收获 问题归根结底是,“你在保护什么?”我的猜测是,你没有保护任何比银行更需要安全的东西,而且可能比银行要安全得多
你花了很多时间试图在这里重新发明轮子,而不是依靠久经考验的方法。坚持已经证明的方法。SSL很好,我不知道你为什么不同意。客户端散列仍然使PW在客户端和散列上都可见,因此没有任何收获 问题归根结底是,“你在保护什么?”我的猜测是,你没有保护任何比银行更需要安全的东西,而且可能比银行要安全得多 你花了很多时间试图在这里重新发明轮子,而不是依靠久经考验的方法。坚持已经证明的 ->客户端希望通过SSL登录->服务器发回密钥->客户端的PW哈希->客户端使用密钥加密哈希,随机IV->服务器使用密钥解密数据(存储在$u会话中,带有过期时间戳),并将哈希与数据库中的哈希进行比较(如果过期时间戳仍然有效) 为什么要加密散列?这意味着散列不够安全。好吧,好吧,我们开始吧。因此,让我们假设攻击者能够读取散列,这就是您希望使用附加层对其进行保护的原因。如果攻击者能够读取散列,那么他们也能够读取服务器发送给客户端的密钥,以及包含加密算法的Javascript(假设您在这里讨论的是HTML场景)。现在,攻击者拥有复制和反转加密的一切,事实上,他们可能还能够首先更改从服务器发送到客户端的Javascript 为了防止这种情况发生,您需要一些包装器来保护客户端和服务器之间的所有通信,例如,哦,嗯,比如说…SSL。
由于SSL已经保护通信不受第三方干扰…您认为您在添加额外的歌曲和舞蹈时到底添加了什么?我告诉你:没什么 ->客户端希望通过SSL登录->服务器发回密钥->客户端的PW哈希->客户端使用密钥加密哈希,随机IV->服务器使用密钥解密数据(存储在$u会话中,带有过期时间戳),并将哈希与数据库中的哈希进行比较(如果过期时间戳仍然有效) 为什么要加密散列?这意味着散列不够安全。好吧,好吧,我们开始吧。因此,让我们假设攻击者能够读取散列,这就是您希望使用附加层对其进行保护的原因。如果攻击者能够读取散列,那么他们也能够读取服务器发送给客户端的密钥以及包含加密算法的Javascript(