Это вызывает конфликты, когда пользователь открывает другую страницу на другом окне/вкладке. Итак, как предотвратить эти конфликты? Один из способов - установить сеанс для каждой страницы одинаково. Каждый раз, когда пользователь выйдет из системы/войдет в систему, сеанс будет регенерирован.Важно ли менять сеанс при каждом запросе на страницу?
<?php
//every page sets its own session if its not ajax so that it dont expire
if(is_ajax()){
$_SESSION['token'] = md5(rand());
}
echo '<div id="token">'.$_SESSION['token'].'</div>';
?>
жетоны будут переданы от div.token выполнять Ajax запросы на JQuery. но затем, когда пользователь открывает другую вкладку, устанавливается новый сеанс, а другая страница возвращает ошибку «Недействительный запрос».
ли вы имеете в виду изменить идентификатор сессии? Зачем вам нужно обновлять новую для каждой загрузки страницы? И почему это вызывает проблемы на новых вкладках - все ли URL-адреса имеют токен? – alex
да все страницы имеют маркеры, которые будут использоваться в запросах ajax и отправке форм – kornesh
кому угодно !? по крайней мере, любые другие методы для CSRF защищают запросы AJAX – kornesh