我正在創建'記住我'功能。我試圖閱讀許多不同的文檔和手冊,以確保它儘可能安全。我需要在我的Cookie中使用TOKEN和VERIFIER作爲「記住我」功能嗎?
正如你所看到的,我創建該驗證cookie時,我們在MySQL數據庫中查找並找到用戶ID登錄他們在$令牌。
我剛纔讀的另一篇文章,這表明我應該將一個RANDOM標記和一個SHA(384)的VERIFIER存儲到cookie中,然後使用它們在MySQL數據庫中查找它們。
我看不出如何變得比下面的實施更安全,就好像它們以某種方式具有令牌一樣,它們也將具有驗證器?
if ($remember == 1) {
$token = bin2hex(openssl_random_pseudo_bytes(16));
// insert token into the mysql database
$stmt = $pdo->prepare("INSERT INTO tokens (token, userid) VALUES(:token, :userid)");
$stmt->execute(array(
'token' => $token,
'userid' => $rRow->ID
));
setcookie ("MCTOKEN", $token, time() + 2419200,'/', SITE_DOMAIN);
}
在您的新實現中'系列'不會從安全角度增加任何價值。 – zerkms