php中用户验证的方式,在php中进行用户身份验证的最佳方式是什么?
使用
Sessions.將會話ID存儲在cookie中,并將用戶的狀態存儲在服務器端(loggedIn,userId,IP).
澄清您需要存儲在會話數組中:
> loggedIn:一個關于用戶是否登錄的布爾變量.您可以為多個會話重復使用相同的Cookie,因此您可以在下次訪問您的網站時記住用戶的用戶名等.
> userId:數據庫中用戶的uniqe id.使用它來獲取用戶的更多信息,如用戶名,電子郵件等.在用戶注銷后,這也可以保存在會話數組中.
> IP:為了防止某人竊取會話ID并使用它,您還可以存儲用戶的IP.這是可選的,有時您希望允許用戶漫游(例如,當IP更改時,stackoverflow允許我使用筆記本電腦進行移動,而無需登錄).
> lastPing:用戶上次看到的時間戳.可以使用它,而不是cookie過期日期.如果您還存儲會話的生命周期,則可以由于不活動而將用戶記錄在外.這意味著會話id cookie可以存儲在用戶計算機上很長一段時間.
當用戶由于不活動而退出或注銷時,只需將loggedIn設置為false即可.當用戶使用正確的用戶名和密碼登錄時,將loggedIn設置為true并更新其他字段(userId,IP,lifetime).當用戶加載頁面時,會根據當前時間和生命周期檢查lastPing,并更新lastPing或注銷用戶.
會話數據可以存儲在文件系統或數據庫中.如果存儲在數據庫中,則userId是用戶記錄的外鍵,或者所有數據都可以放在用戶記錄中.
哈希
重復一次值不是一個好主意,因為你reduce the security.而是使用salt,結合靜態鹽(例如頁面的名稱)和用戶的用戶名以及密碼.需要很長時間的哈希并不比快速哈希更好,導致大量摘要的散列比導致短消息(由于暴力)的哈希更好.使用SHA1應該足夠正常的站點(IE,而不是銀行或秘密軍事組織).
總結
以上是生活随笔為你收集整理的php中用户验证的方式,在php中进行用户身份验证的最佳方式是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 屏幕中间显示已停用缩放_有关标签打印软件
- 下一篇: php文件锁 阻塞区别,php文件锁阻塞