我有一個表單,用戶可以更改密碼並將其存儲在SQL數據庫中。在表單提交時,頁面通過POST提交給自己。 我的問題是,是最好加密客戶端(JavaScript)或服務器端(PHP),或兩者的密碼字段?什麼時候最好加密一個變量?
1
A
回答
1
您的表格提交應通過SSL。如果你這樣做,那麼就不需要在客戶端進行加密,因爲SSL將保護它在傳輸過程中。
在服務器上,您需要爲存儲密碼的方式制定一般安全策略。存儲它們的一個好方法是僅存儲某種安全散列,並且不存儲實際的密碼。當要檢查密碼時,它會在SSL下發送到服務器,然後在服務器上對其進行散列並與存儲在數據庫中的安全散列進行比較。如果它們匹配,則驗證密碼檢查。這意味着即使您的數據庫受到損害,也不會有實際的密碼被盜用。
您可以在將實際密碼存儲在數據庫中之前使用加密,但這需要保持加密方法/密鑰的安全,以便可能闖入您的數據庫的黑客無法解密密碼。雖然這可以是「安全」的時候,但是它有更多的潛在漏洞,而不僅僅是存儲散列,並且從不存儲實際的密碼,並且也可以被有權訪問數據庫和加密方法/密鑰的員工從內部泄露誰可以竊取密碼。
+0
感謝您爲我闡明瞭一些光。我開始閱讀安全知識,並且有很多比眼睛哈哈! –
相關問題
- 1. 變量變量:什麼時候有用?
- 2. 什麼時候最好做NSManagedObjectContext保存?
- 3. 什麼時候最好用C++模板?
- 4. iPhone:什麼時候將一個Objective C變量變成一個實例變量?
- 5. 什麼時候最好定義一個拷貝構造函數
- 6. 什麼時候變得更好?
- 7. 變量在什麼時候變化?
- 8. 什麼時候使用靜態變量更好?
- 9. 什麼時候解密?
- 10. Java中的最後一個變量不能再修改到什麼時候?
- 11. 什麼時候一個靜態變量是真正初始化
- 12. 什麼時候在AngularJS中創建一個範圍變量?
- 13. IOS sythesize - 什麼時候聲明一個內部變量?
- 14. 什麼時候javascript初始化變量?
- 15. 什麼時候Docker變量可用?
- 16. clojure什麼時候刪除變量?
- 17. 什麼時候釋放變量decodeSet1?
- 18. 什麼是最好的方式有一個變量千瓦/年
- 19. 什麼時候加入名字,什麼時候不加入?
- 20. 什麼時候應該初始化一個新的變量,什麼時候不應該?
- 21. 什麼時候你返回一個類,你什麼時候返回一個HttpResponseMessage?
- 22. 什麼時候會是拉Facebook好友的最佳時機?
- 23. 什麼時候變量的後綴操作符實際增加?
- 24. 什麼時候在PHP中使用變量變量?
- 25. 在什麼時候內存被分配給C++中的一個常量變量?
- 26. 什麼時候使用螺旋鎖是一個好主意?
- 27. 什麼時候正在使用__call__一個好主意?
- 28. 什麼時候變量是閉包的一部分?
- 29. 什麼時候應該放棄一個表變量的臨時表?
- 30. 在C++循環中創建新變量時最好是什麼
如果使用https傳輸數據,那麼服務器端加密將是足夠的 –
你是不是意味着哈希沒有加密和是SERVERSIDE,並通過SSL發佈 – 2014-03-06 02:20:08