這是我想出來存儲cookie來驗證我的網站上的用戶。我的Cookie代幣應該保存多久?
多久應該令牌是我產生?是33還是應該是64?而且我的這一代足夠安全嗎?
<?PHP
$token = bin2hex(openssl_random_pseudo_bytes(33));
echo $token.'<br>';
$hash = hash('sha256', $token);
echo $hash;
//Test user db and local cookie
$stored_hash = '5be39777ad41916c5fa1e78681bfc8793a5cfe7c27842846ad23396e44b390a7';
$cookie = '1a9243f95354252d937d2b99e64a7eeb462e00c72b26d488426f08ef11667522c6';
$cookie_hash = hash('sha256', $cookie);
if(hash_equals($stored_hash, $cookie_hash))
echo 'true';
else
echo 'false';
?>
如何偏執,你有什麼感覺?你將要存儲多少令牌? –
約有10k個用戶。至於偏執只是想要安全。有33和64長度的巨大安全差異嗎? – user2570937
只需使用會話cookie和修改php.ini,特別是散列函數和每個字符的散列位,http://php.net/manual/en/session.configuration.php#ini.session.hash-function – Xorifelse