Как обеспечить безопасность при работе с Ajax?

Есть переключатель на странице, например такой:
6606f27c9598419aa45101a65ba426ba.png
При его изменении в БД должно меняться значение. Итого цепочка выходит:
Страница с переключателем -> Страница обработчик -> БД

Вопрос: Как предотвратить прямой запрос на страницу обработчика третьими лицами?
Ведь страница с переключателем имеет доступ к сессии например и может проверить её наличие и id юзера. Страница обработчика доступа к сессии не имеет. Передать CSRF-метку обработчику? С чем он её будет сравнивать? Ничего толкового в голову не приходит.
  • Вопрос задан
  • 989 просмотров
Решения вопроса 4
rework
@rework
Помог ответ? В благодарность отметь его решением
Страница обработчик - это что такое?
Ваш запрос должен посылаться на сервер, который должен иметь в сессии текущего юзера, он и должен проверять права доступа.
Ответ написан
gobananas
@gobananas
finishhim.ru
Идентификатор сессии хранится в куки, сама сессия это файл на сервере. Прежде чем писать что файл на который передаётся AJAX-запрос не увидит сессию просто попробуйте это сделать и посмотрите на var_dump хотя бы...
Ответ написан
Комментировать
Создавайте и храните токен в сессии как только пользователь вошел на сайт. После чего добавляйте ее во все формы и сравнивайте каждый раз при получении данных на сервере.
Ответ написан
kirill_782
@kirill_782
Днем я Маринетт
Короче: куки передаются вместе с заголовками. Для сервера нет разницы это страница, ajax запрос или асинхронная догрузка (куки передаются всегда (я думаю вы знаете как работают куки)) Сессии, насколько мне известно хранятся в куках. Вам надо заставить ajax скрипт заставить отсылать crfs токен. Т.е. генерировать его на сервере, хранить в БД, ограничить время жизни и привязать к пользователю. Его надо передать обратно на сервер через, например, POST. Провепяете токен и куки и пишите данные в БД куда надо (или не пишите).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы