CSRF-токен - обновляется по истечении срока действия (PHP / Javascript / AJAX) - PullRequest
0 голосов
/ 19 мая 2019

Я создаю простое приложение, которое отправляет 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();
...