amio
@amio
Newbie web-developer)

Как защититься от подмены пост запроса?

Добрый день.

Простой пример: есть комментарии под постом, каждому пользователю доступно удаление только своих комментариев. Удаление происходит так: делается ajax запрос на экшен контроллера, в запросе содержится айди комментария и другие данные. Как можно защититься от подмены id комментария в запросе ?

Заранее спасибо.
  • Вопрос задан
  • 464 просмотра
Пригласить эксперта
Ответы на вопрос 6
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Все данные, пришедшие от клиента должны проверяться на сервере. Сюда входит как проверка корректности самих данных, так и проверка прав пользователя на операции с этими данными.
Ответ написан
Комментировать
BuriK666
@BuriK666
Компьютерный псих
на стороне сервера проверяйте что комментарий принадлежит пользователю который отправил запрос.
Ответ написан
Комментировать
Проверять на сервере, передаете ID пользователя и ID комментария, если они связаны в базе, то удаляете, иначе - ошибка.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
А зачем?! Просто проверить права удаления текущим пользователем (серверная сессия) комментария с переданным ID .
Ответ написан
Комментировать
amio
@amio Автор вопроса
Newbie web-developer)
В итоге, самое лучшее решение, не передевать никаких служебных данных в открытом виде, а хешировать их.
Ответ написан
Комментировать
Urichalex
@Urichalex
Кратко о себе)
ID пользователя уже есть в Yii::$app->getUser()->getId();
Передаете id комментария и, получаете комментарий, указав в выборке id пользователя, либо, тащите этот комментарий из базы и сравниваете поле, отвечающее за id пользователя комментария с id текущего пользователя. Если разные - throw new ForbiddenHttpException();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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