Я создаю простое приложение, которое отправляет ajax-запросы для обработки на стороне сервера. Я пытаюсь интегрировать токены CSRF в заголовок в целях безопасности, чтобы люди не пытались перехватить вызовы ajax и выполнить их удаленно.
Я замечаю, что мои сессии истекают, и поэтому мне нужно периодически получать новый токен CSRF. Однако я не уверен, что является лучшим подходом для этого. Я читал об освежающих жетонах и не нашел хорошего решения. Я пробовал это:
<META HTTP-EQUIV="REFRESH" CONTENT="csrf_timeout_in_seconds">
но я думаю, что это специфично для определенного класса, так как он не работает с базовым PHP и JavaScript (как мое приложение).
Как лучше всего выполнять проверку периодически и / или при загрузке / обновлении страницы, чтобы получить новый токен CSRF, если срок действия старого истек? Будет ли безопасным вызов ajax на сервер для проверки токенов CSRF?
например. (серверная часть ajax.php):
session_start();
if($_SESSION['csrf_token'] != $_POST['csrf_token'){
$response = bin2hex(openssl_random_pseudo_bytes(32));
}else{
$response = "valid";
}
echo $response;
die();