Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.js和密码安全:三个问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我之前从未编写过用户身份验证系统,对于这个项目我需要平衡安全性和效率(这意味着我不能花费数百个工时来处理安全性,但我需要保留密码和登录信息安全).

我正在使用带有快速框架和通行证的Node.js进行身份验证和会话.

到目前为止,我所做的研究显示了需要解决的三个问题.在今天之前,我几乎不知道如果这些问题存在任何常见的解决方案,并且几个小时的随机啄掉研究并不能让我对我找到的答案的完整性有信心.

问题:

>不要将未加密的纯文本密码存储数据库
(可能的答案:盐/哈希密码在服务器上并将哈希存储在数据库中.)
>不要通过非安全的http连接传递纯文本密码
(可能的答案:A – 仅使用Https进行身份验证过程.之后使用http.B – 在登录页面用户发送随机盐,哈希密码客户端,然后取消哈希并重新加密数据库存储.)
>不要使用GPU加密方法,GPU每秒可以破解700,000,000个密码.
(可能的答案:bcrypt)

这些只是我在3小时研究中发现的最明智的答案.我不知道这些是否足够,它们的弱点是什么,或者可能有哪些替代品.我还要感谢任何进一步的见解(另请注意:我甚至不确定 – https是否会在传输时充分保护密码?)

解决方法

安全性的最佳实践很多,但这个想法基本相同:希望最好,期望最坏.这解释了你的三个问题:

>假设某人获得了对您数据库的访问权限,您不希望密码被泄露.散列密码可确保您无法从散列中获取密码.
>这是为了避免中间人攻击.服务器在向服务器传递请求时可以轻松地监听和记录密码.即使你不认为中间人的攻击是可能的,希望是最好的,并期待最坏的.
>使用易于记忆的长密码,但其他人难以猜测.更好的是,如果你可以将每5分钟的尝试次数限制为3次,那么这将需要更多的时间来破解.

这三者中的每一个都转向了这样的想法,即有人破坏了你的系统并进行了破坏控制,或者由于它需要花费的时间使其几乎不可能破裂.性能很重要但总是不如安全性重要.仅仅使用常识并且不会基于假设来破坏安全性,因为这是在您的安全性中插入错误的最可靠方法.总之,期待最坏的.

大佬总结

以上是大佬教程为你收集整理的Node.js和密码安全:三个问题全部内容,希望文章能够帮你解决Node.js和密码安全:三个问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: