在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