@lil_web

Как защитить AJAX-запрос?

У меня есть две страницы: список людей для пользователя и администратора. Пользователь только просматривает список, администратор добавляет людей через форму без перезагрузки страницы.

Страница админа защищена паролем (допустим), но я нашёл уязвимость. Пользователь может открыть script.js, узнать, как админ добавляет людей, и с помощью веб-консоли замусорить базу данных.

Как защититься от этого?
  • Вопрос задан
  • 501 просмотр
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Обычно происходит так:
1) У админа есть пароль. У пользователя, кстати, тоже должен быть.
2) Админ вводит пароль на сайте и в замен получает токен (т.е. какой-то ключ). Получить он может его как угодно - напрямую через POST-запрос из формы, либо через ajax. Но суть такая, что в запросе пароль, а в ответе токен (ключ).
3) Далее этот токен админ использует везде на сайте для доступа к своим админстким функциям. То есть в каждом ajax-запросе присутствует этот токен. Он становится частью сессии. Вообще в php даже есть свои сессии со своим ключом, так что их тоже можно использовать.
4) Через какое-то время, либо после нажатия кнопки "выход", токен устаревает и больше не работает (нужно снова вводить пароль).

Так что ответ на вопрос: нужно посылать токен в каждом ajax-запросе, это и будет защита.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@entermix
Как защититься от этого?

Вы не поверите, но нужно прикрутить авторизацию...
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Как защититься от этого?

Варианта 2:
1. Либо Вы делаете недоступным контент
2. Либо - запрос.
(PS: что одно и то же...)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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