1
我正在開發一個登錄腳本,並且試圖讓它比我以前做的更安全。在我過去只存儲uniqid()
的散列之前,並將其存儲爲用戶登錄時的會話。現在我使用下面的函數來創建一個UID,但認爲它可能有點矯枉過正。它返回一個64個字符的字符串。生成用戶唯一標識的最佳/標準方法?
private function _createUid() {
$bytes = random_bytes(32);
$uid = bin2hex($bytes);
return $uid;
}
現在我的問題是,什麼是存儲登錄唯一ID的標準方法/令牌?我並不是指記住我,因爲這是一個完全不同的故事,但僅僅是一個典型的登錄名和我應該存儲的UID。
任何幫助將是偉大的,謝謝!
我認爲JWT令牌是存儲會話的絕佳方式,因爲它不需要數據庫訪問權限進行驗證,只要您喜歡就可以過期。你沒有真正說明你想要達到的目標。這些ID是發送到服務器來驗證客戶端還是? –
它不一定是應該引起擔憂的字符串長度。將獨特性與驗證相結合是一個好方法。您應該根據存儲在服務器端的內容檢查會話值。例如。每個請求上的數據庫條目。正如盧克指出的JWT是非常好的驗證方法。即使使用JWT,您也可以驗證每個請求上附加到json令牌的值。 – Yolo
你不需要這個,因爲你已經擁有它 - 會話ID。 – Narf