Задать вопрос
@thisuserhatephp
Офлайн - losers Онлайн - lusers

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

Как защититься от изменение запроса.
Например есть вот
такой
5d9ca05a0d69e254727306.png
блок с data-id он отправляет в базу id и выводит запись. Но если пользователь изменит его через код-элемента например id 274 на 666 то выведется запись 666. Как сделать так, что бы запрос выводил 274 а не 666
В интернетах это называется CSRF но на большинство сайтов пишут про уязвимость и про то, что мол очень серьезно а не то как ее предотвратить
  • Вопрос задан
  • 135 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
@Narts
Решение очень простое
Создаем две функции: cryptID и decryptID, которые шифруют и дешифруют ID. Пользователю отдаем зашифрованный ID, типа:
data-id="wallId_G5ht3Q"
Далее когда пользователь отправляет запрос, получаем G5ht3Q, расшифровываем его, и проверяем, существует ли запись с таким ID
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
О господи, опять этот вопрос.

Запрос никак не защищать.
Если пользователь может видеть запись 666, то пусть смотрит что хочет.
Если пользователь не имеет права видеть запись 666, то получив любой запрос проверять его на наличие прав. А изменение запроса оставить в покое. Клиент по определению может отправить любой.

К CSRF это абсолютно безобидное ковыряние в хтмлочке никакого отношения не имеет.
Ответ написан
Комментировать
humiliation
@humiliation
Чем больше знаю - тем больше дурак
если это только гет - то пусть гетит себе на здоровье. С лимитом на запросы, не более 20 в минуту, например. А на update-delete-create, конечно, проверка прав и CSRF.
Ответ написан
Ваш ответ на вопрос

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

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