Как передать ID объекта на сервер, не показывая его на фронте?
Делаю сайт, на котором можно будет выкладывать объявления. Делаю кнопки "Активировать объявление" и "Снять с продажи". Понятное дело, что если положить id объекта в атрибут кнопки, а потом js-ом взять его и передать на сервер, то до передачи через инспектор можно поменять ID и снять с продажи чужое объявление. Можно в куки закинуть, но это тоже можно поменять же.
Есть какие-то пути обхода этой ситуации?
Я подумал, что можно на бэкенде проверять авторизованного пользователя и если у него есть такое объявление, то деактивировать, а если нет, то посылать куда подальше. Что думаете?
У вас на сайте абсолютно таким же методом чужой пароль от аккаунта сменить случайно нельзя? Подменив ID редактируемого пользователя в профиле.
Всегда проверяйте любые данные, пришедшие от клиента, никогда не доверяйте ему. Валидируйте все данные, проверяйте авторизованность, права доступа, группу пользователя, добавьте защиту от CSRF (и прочитайте что это такое, если вам непонятна данная аббревиатура)
Конечно спрятать можно. Для этого его надо просто зашифровать. А ключи шифрования только на сервере. Но вообще-то надо проверять в БД, является ли пользователь владельцем объявления.
На сервере ОБЯЗАТЕЛЬНО надо проверять владельца. И никогда не доверять никаким данным, пришедшим с клиента.
А то первый же кривой скрипт-краулер удалит вообще все объявления на сайте :)