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