我只是通過一些代碼,並確保所有的用戶輸入符號通過mysql_real_escape_string()來防止sql注入。對於通過PHP的MD5 run()函數輸入密碼,是mysql_real_escape_string(仍需0?這似乎是在編碼過程將擺脫潛在注入攻擊。mysql_real_escape_string()仍然需要md5()?
0
A
回答
2
其實,yes和no。
你只有需要使用mysql_real_escape_string()
如果你設置的md5()
到true
第二個參數 - 其產生的RAW MD5哈希
否則,從東西回來像md5($password)
的資料就只有一個字符串散列匹配這個章節exp /[a-z0-9]{32}/i
- 哪個不需要需要要逃脫。
這些傢伙解釋爲何以及如何利用原始MD5哈希值:
1
MD5被不足夠的密碼安全性 - MD5是一個古老的算法,這是很容易破解;如果你使用MD5來散列密碼,你可能根本不會使用任何東西。目前的最佳實踐建議是使用bcrypt算法。
mysql_real_escape_string()
以及其餘的mysql_xxx()
函數現在已被棄用。它們被認爲是過時和不安全的,現在還沒有被推薦使用一段時間。即將到來的PHP v5.5將正式棄用它們,但即使您不打算升級到5.5版本,也應該嘗試停止使用它們。有關詳細信息,請參閱Why shouldn't I use mysql_* functions in PHP?。
正如我所說的,MD5並不安全,大多數解決方案都是人們自己寫的。哈希密碼的最佳解決方案是使用高質量的庫爲您完成工作。 PHP 5.5將包含一組專門編寫的密碼處理函數,這將使整個事情更容易保持安全。這個庫的一個版本已經被移植到PHP 5.3或5.4中。您可以從這裏下載這個backport版本:https://github.com/ircmaxell/password_compat
在這個時候,這代表了PHP可用的密碼存儲的最佳解決方案。我強烈建議你使用它。
相關問題
- 1. Html.AntiForgeryToken()仍然需要?
- 2. KitKat仍然需要WRITE_EXTERNAL_STORAGE?
- 3. ,Cookie是否仍然需要?
- 4. p:selectOneMenu值仍然需要
- 5. 是quickclick js仍然需要?
- 6. 需要MD5指導
- 7. ctype.h是否仍然需要unsigned char?
- 8. 的Class.forName似乎仍然需要
- 9. Xamarin Insights仍然需要訂閱
- 10. Netty 4.1是否仍然需要setUseClientMode?
- 11. 排除領域仍然需要
- 12. 是否仍然需要限制$(window).scroll()?
- 13. FlashDevelop?我是否仍然需要Flash CS
- 14. Innosetup在仍然需要時刪除abc.msi
- 15. JFormattedTextField爲雙仍然需要字符
- 16. Dojo構建 - > dojo.require();仍然需要?
- 17. 檢查是否仍然需要blob
- 18. Launch4J exe仍然需要jar文件
- 19. 爲什麼G ++仍然需要-latomic
- 20. 線程仍然需要很長時間
- 21. Rails 5.1中仍然需要`require jquery_ujs`嗎?
- 22. BackgroundWorker仍然需要調用Invoke?
- 23. C#MD5散列需要匹配PHP MD5哈希(與鹽)
- 24. 我是否仍然需要爲algorithm :: join使用boost?
- 25. haml 4x +中仍然需要hamlc文件嗎?
- 26. 爲什麼dsofile.dll仍然需要Office安裝?
- 27. 仍然有問題轉換爲VB Webserice到C#....需要幫助
- 28. 是否仍然需要支持純文本電子郵件?
- 29. MVC dropdownlistfor沒有標示,但仍然需要
- 30. 在npm卸載後Express包仍然「需要」 - 可以嗎?