Hash 清除日志中的密码

Hash 清除日志中的密码,hash,passwords,bcrypt,Hash,Passwords,Bcrypt,我知道有很多原因导致密码会出现在clear中的日志中,例如,我在调试日志的上下文中看到过这一点,但我想知道是否有人可以解释这一机制,假设web应用程序对用户提交的密码进行散列,并将散列与站点操作员存储的密码进行比较 例如,假设用户访问一个网站,输入用户名和密码,然后单击submit。我假设密码立即被散列(比如说使用bcrypt),并与数据库中输入的用户名相关联的散列进行比较。那么,明文密码怎么会出现在日志中呢?在散列发生之前,输入的密码是否以某种方式被记录?如果是这样的话,这是安全故障吗?密码通

我知道有很多原因导致密码会出现在clear中的日志中,例如,我在调试日志的上下文中看到过这一点,但我想知道是否有人可以解释这一机制,假设web应用程序对用户提交的密码进行散列,并将散列与站点操作员存储的密码进行比较


例如,假设用户访问一个网站,输入用户名和密码,然后单击submit。我假设密码立即被散列(比如说使用bcrypt),并与数据库中输入的用户名相关联的散列进行比较。那么,明文密码怎么会出现在日志中呢?在散列发生之前,输入的密码是否以某种方式被记录?如果是这样的话,这是安全故障吗?

密码通常在服务器端散列,而不是在客户端散列。如果密码将在GET请求中发送,它将在日志中以纯文本结束

为了防止密码最终出现在日志文件中,应该使用POST请求


为了保护密码免受中间人攻击,应仅通过加密的HTTPS/SSL连接传递密码。客户端散列不会保护密码,因为中间的人可以简单地删除进行散列的脚本。

如果日志中出现密码,则有人在实现其安全性时犯了可怕的错误。没有充分的理由让明文或可解密的密码出现在日志中。如果有人可以通过检查日志来获取密码,那么这就是安全性故障。@JimMischel那么你是说查询字符串不应该出现在日志中。@zaph-这正是我在最后一句中写的。但无论如何,还是要感谢您,只是更改了短语的优先级。重新排序确实有帮助。我认为使用HTTPS/SSL的客户端哈希将比服务器端哈希更有效地保护密码,同时同样有效地防止中间人(MITM)攻击。在这种情况下,对密码的保护更有效,因为明文密码永远不会离开客户机,因此服务器永远也不需要保护它。HTTPS/SSL在两个方向上保护数据,防止攻击者剥离进行哈希运算的脚本。@Slartibartfast-服务器必须对密码执行的唯一操作就是哈希运算。但是你是对的,客户端和服务器端散列有一个小的好处,也许你想看看关于这个主题的另一个方面。在这个问题的上下文中,客户端散列完全可以防止用户密码出现在日志中(无论您是获取、发布,还是将明文事务写入服务器上的磁盘),您链接到的答案与此问题无关。