在PHP中存储密码最安全的方法是什么?我非常感兴趣的是在使用我的应用程序时保护我的用户受到保护,并且我想用尽可能最好的方式来存储他们的密码。我已经阅读了各种加密方法,如MD5,SHA1等。我还阅读了“盐”和哈希。有人可以告诉我以PHP最安全的方式存储密码吗?在PHP中存储密码的最安全方法是什么?
回答
在将数据存储到数据库中之前,请先将您的密码加盐。在任何情况下,您都不能以纯文本格式存储密码。一旦散列后丢弃纯密码。
还使用会话变量来存储和跟踪用户会话。不要使用cookies,因为它们存储在浏览器中,并且可能会妥协。
有一个很好的密码策略。至少要确保每个密码都有一个最小长度,不是一个词典单词,不是全部数字,并且是上部和中间混合数字的混合。等谷歌对象密码策略会变成很多。
使用任何类型的散列存储密码不会保护您的系统,但它会阻止人们在系统遭到入侵时看到明文密码。安全来自良好的监督和良好实践。
Microsoft有这样的见解:
许多Web应用程序使用 密码机制对用户进行身份验证,用户在HTML表单提供一个 用户名和密码。到 的议题和问题考虑在这里包括:
- 以明文在不安全 通道发送的用户名和密码?如果是这样,攻击者可以使用网络监控软件窃听软件来捕获证书。这里的对策是通过使用安全套接字层(SSL)来保护通信信道的 。
- 如何存储凭证?如果您以纯文本形式存储用户名和 密码,无论是在文件中还是在数据库中,您都是 会招来麻烦。如果您的应用程序目录配置不正确 ,攻击者浏览该文件并下载其内容 或添加新的特权登录帐户?如果一个不满的 管理员将您的数据库用户名和密码拿走?
- 如何验证凭证?如果 的唯一目的是验证用户知道密码值,则不需要存储用户密码。 相反,您可以将散列值形式的验证器存储起来,并在登录 过程中使用用户提供的值重新计算散列值。为了减轻字典攻击针对 凭证存储的威胁,请使用强密码并将随机产生的salt值与密码哈希组合。
- 初始登录后如何识别经过身份验证的用户?某些形式的身份验证 票证(例如身份验证cookie)是必需的。 cookie如何保护?如果它通过不安全的通道发送,攻击者可以捕获cookie并使用它来访问应用程序。被盗的 认证cookie是被盗的登录。
如果认证存储受到危害,使用*适当的*散列技术(以及*合适的* salt *和* HMAC)将减轻**总帐户损失**。如果假设是在店里*不能*妥协那就不会比存储明文更好,但*这种假设可能是危险的* ... – 2012-06-07 01:19:30
@pst - 笑,编辑我的回答对一个封闭的问题 – afuzzyllama
哈哈,确实。我编辑了我的评论为一个封闭的问题;-) – 2012-06-07 01:22:36
- 1. 什么是安全存储密码(散列)的最佳方式
- 2. 什么是存储Paypal专用密码的安全方式? (PHP)
- 3. 在properties.settings文件中安全地存储密码的最佳方式是什么?
- 4. 在Java代码中嵌入密码的最安全方法是什么?
- 5. 什么是在MySQL数据库中存储密码的更安全的方式?
- 6. 安全存储密码的最佳方法
- 7. 在PHP中验证URL最安全的方法是什么?
- 8. PHP - 在cookie中存储密码是否安全?
- 9. 什么是C#支持的最安全密码散列算法?
- 10. 存储密钥和密码的安全方法,用于asp.net
- 11. 安全密码存储
- 12. 最安全的地方存储密码的散列
- 13. 什么是最安全的python“密码”加密
- 14. 在codeigniter中加密密码的最佳方法是什么
- 15. 在MySQL中使用/存储加密密钥的最佳方法是什么
- 16. 什么是加密/解密数据最安全的方式?
- 17. App Engine:传输密码并将其安全地存储在Google App Engine中的最佳做法是什么?
- 18. 存储mysql密码的最佳方法?
- 19. 使用注册表格在数据库中存储密码的安全方法是什么?
- 20. 这是一个安全的方式来存储我的密码?
- 21. 什么是最安全的散列方法? (PHP)
- 22. 什么是存储AES加密密钥的最佳方式?
- 23. 什么是存储加密密钥的最佳方式?
- 24. PHP存储密码的好方法
- 25. ,保存密码的最佳方法是什么?
- 26. 在* nix中清空目录的最安全方法是什么?
- 27. 我能做些什么来快速安全地存储密码?
- 28. 保存加密/解密密钥的最佳方法是什么?
- 29. 在PHP中存储类变量的最佳方式是什么?
- 30. 在PHP中安全的最佳方法?
SHA512和盐 – zerkms
又来了......我还没有去查找重复的这一个。 “不建设性”。 – 2012-06-07 00:39:59
使用预先存在的,经过良好测试的[密码哈希库](http://www.openwall.com/phpass/)。不要'滚自己的'。 – PenguinCoder