有什么办法可以不在请求的有效负载中显示密码吗?

问题描述 投票:0回答:1

我试图确保当用户输入密码进行登录时,它不会出现在请求的有效负载中。在后端,我使用express.js并使用bcrypt加密密码。在前端我使用solid.js 如何确保在开发工具中查看时密码不会出现?

What I can see in devtools right now

我尝试在前端对它们进行哈希处理并将它们发送到后端,但它收到的内容并不相同。我也研究过 JWT,但我不确定它是否与此密切相关...我只是希望它能够逻辑验证用户是否正确以及访问应用程序的密码是否正确,但无需密码如果有人访问开发工具就可以发现。

mongodb express jwt bcrypt solid-js
1个回答
0
投票

正如评论者所说,密码以明文形式出现在有效负载中并不是安全问题 - 只要您使用

https

但是如果您担心密码:

  • 最终以明文形式出现在网络服务器日志中(就像 Facebook 被罚款的事情一样)
  • 最终留在内存中,并由于 OpenSSL 中的错误(例如 Heartbleed)而被披露

那么有一种方法可以阻止用户的明文密码传输到服务器。

安全远程密码协议

不幸的是,这意味着你将不得不完全放弃 bcrypt;因为在 SRP 下,密码的哈希值是无用的。

通常的解决方法是:

  • 保留 bcrypt 哈希密码,直到下次用户出现为止
  • 然后强制他们登录
  • 然后就可以在客户端应用SRP算法了
  • 并清除 bcrypt 密码

但更好的版本是只使用

https
,并告诉监管者、审计员、经理或政府自己做一些在解剖学上不可能的事情。

© www.soinside.com 2019 - 2024. All rights reserved.