作爲一個更廣泛的問題,我想問一下當前確保網站登錄的最佳策略是什麼。我知道所有的基礎知識,比如醃製密碼,散列密碼以及使用SSL加密傳輸,但我覺得這可能並不總是足夠的。那裏最好的「防黑客」方法是什麼?如何正確保護登錄?
1
A
回答
1
您的積分已經是最重要的,另外,你可以這樣做:
- 使用慢像BCrypt這樣的密鑰派生函數來散列密碼。
- 將X-Frame-Options添加到登錄頁面的HTTP標題中,以便頁面無法顯示在iframe中。這可以幫助防止點擊劫持。在PHP中,這看起來像這樣:
header('X-Frame-Options: DENY');
。 - 將Content-Security-Policy添加到您登錄頁面的HTTP標頭中。如果瀏覽器支持CSP,這可以有效防範跨站點腳本。在PHP中,它看起來像這樣:
header("X-Content-Security-Policy: allow 'self'");
。 - 重新生成登錄頁面上的會話ID,使會話修復更加困難。
- 對整個站點使用HTTPS,這可以避免很多問題。如果您需要在HTTPS和HTTP之間切換,請使用單獨的Cookie進行身份驗證,請查看此example。
- 如果您的網站只有HTTPS,那麼您可以添加HTTP嚴格傳輸安全標題。 HSTS可以防止用戶(已經訪問過您的網站一次)從調用不安全的HTTP頁面。這可以幫助防止SSL-strip。
0
不要儲存密碼可言,但使用SRP
http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol
+0
看起來很有趣,我將不得不考慮那 – Twisterz
相關問題
- 1. ASP.Net:如何正確登錄登錄?
- 2. 如何抓取登錄保護頁面?
- 3. 如何保護HTML登錄表單?
- 4. 如何保護登錄系統
- 5. 保護WordPress登錄頁面
- 6. 保護登錄頁面
- 7. 登錄與CRSF保護
- 8. 保護會話登錄
- 9. 如何確保用戶剛剛登錄?
- 10. 如何確保登錄php-mysqli?
- 11. 如何使用Apache/PHP保護未登錄用戶的目錄
- 12. 如何正確登錄到mySQL
- 13. 如何在網站上正確登錄
- 14. 如何正確設計登錄屏幕?
- 15. 如何正確登錄發現?
- 16. 如何正確反轉Django auth登錄?
- 17. 如何正確JQuery的AJAX登錄
- 18. 如何保護scripts目錄
- 19. 確保用戶登錄
- 20. WordPress的 - 通過登錄保護頁面
- 21. 受登錄保護的網站部分
- 22. Java登錄服務器淹沒保護
- 23. Symfony2中,登錄表單 - CSRF保護
- 24. 記住登錄WordPress密碼保護頁
- 25. 使用登錄名保護密碼
- 26. 保護登錄HTTPS時不可用
- 27. Asp.Net Core + Angular =保護Api而不登錄
- 28. Node.JS護照不保持登錄狀態
- 29. WordPress的密碼保護 - PHP誰登錄?
- 30. 保護無密碼登錄系統
非常有趣,我喜歡你的觀點 – Twisterz