Задать вопрос

Как логически организовать защиту от удаления чужих записей?

Привет!

Подскажите, пожалуйста, как обычно организовывается защита данных пользователей друг от друга?

Текущий пример-
Есть регистрация пользователей. У каждого есть свои записи в админке. Все сохранено в базе данных
Есть кнопка удаление записи.

Технически удаление записи происходит так:
JS скрипт берет ID удаляемой записи из верстки и отправляет его с помощью POST в PHP файл без перезагрузки страницы. Запись удалена.

Как можно "напакостить":
- В верстке вручную ставим любой ID записи и нажимаем удалить. И чужая запись удалена.
- Если сделать проверку ID пользователя + ID записи, совпадает = удаление. НО можно просто брутом через POST прогнать каждый ID пользователя и по 1000 записей по порядку. В итоге все равно будет попадание и записи удалятся.

Если придумывать генерацию пользователям и записям уникальные скрытые ключи и делать проверку на совпадение?

Однако, если пользователей сто тысяч, то наверняка будут совпадения в генераторе ключей и возникнет конфликт
Как обычно организовывают такие связи?

Мне бы просто логически понять.
В таких делах новичок.
  • Вопрос задан
  • 252 просмотра
Подписаться 3 Средний Комментировать
Решения вопроса 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Есть такая штука - авторизация, и есть такое понятие как овнершип (владение) и ACL/RBAC. Во всех скриптах проверяется кто владелец файла, или кто может его изменять/удалять. Если у пользователя есть права на изменение/удаление объекта - скрипт отрабатывает, если нет - выдает ексепшн или иначе оповещает о неудачном завершении.
Ответ написан
@dpws
У Вас на бэкэнде пользователь остаётся залогинен даже при POST запросах из JS. В запросах на удаление указывайте только ID удаляемой записи. При его обработке, на бэке, смотрите по залогиненому пользователю, принадлежит ли ему удаляемая запись. Если да - удаляйте, нет - возвращайте сообщение об ошибке.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Аутентификация с логином и паролем, выдача временного токена, дальнейшая авторизация по токену в каждом запросе.
Ответ написан
php666
@php666
PHP-макака
какой странный вопрос
у каждого пользователя свой ид
у каждой записи есть ид_пользователя записи
в чем сложность проверить?
Ответ написан
С сессиями не знакомы? Ну или как вас админка организована? И как вы умудрились сделать регистрацию пользователей если потом у вас такие странные вопросы возникают.
Ответ написан
Ваш ответ на вопрос

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

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