Достаточно ли безопасный токен random_bytes и насколько правильно использовать его через $_SESSION PHP
У меня есть вот такая генерация токена:
function str_rand(int $length = 64){ // 64 = 32
$length = ($length < 4) ? 4 : $length;
return bin2hex(random_bytes(($length-($length%2))/2));
}
$_SESSION['token'] = str_rand();
Достаточно ли безопасен этот токен? Или лучше вот это:
if (!isset($_SESSION['csrf_token'])) {
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
$token = $_SESSION['csrf_token'];
И что лучше использовать, куки, или же сессию?
И еще один побочный вопрос... Как я понял, если я пользуюсь ajax, то мне надо передавать этот токен через ajax запрос, а потом проверять, действительно ли этот токен равен токену с сервера:
if ($_POST["token"] == $token) {}
Ну и + ко всему, надо записывать в meta tag этот самый $token. Я всё правильно понимаю??