Является ли хорошей идеей / хорошей практикой использование переменной сеанса PHP для защиты от редактирования пользователями скрытых / вводимых значений полей? Например, допустим, у меня есть следующие поля:
<input type="hidden" object_id="1" />
<input type="text" object_id="2" />
etc...
Мне нужно иметь object_id
на внешнем интерфейсе, чтобы я мог сказать, какие записи базы данных необходимо манипулировать, когда пользователь отправляет (при условии, что они уполномочены действовать на данные). $_SESSION
переменная будет выглядеть примерно так [obj_id = 1, obj_id = 2]
, Часть процесса авторизации гарантирует, что все записи, которые пользователь пытается выполнить, присутствуют в сеансе. Если есть некоторое расхождение (например, элемент с object_id="3"
) пользователь не авторизован.
Существуют ли решения, которые являются более широко принятыми или обычно достаточно чего-то подобного?
Как правило, вам все еще нужно доверять конечному пользователю, чтобы он предоставил вам правильные данные для изменения. Единственное, что вы можете проверить в этом контексте, — это то, что предоставленные значения выглядят как допустимые данные, которые нужно вставить в базу данных, и это, как правило, само задание базы данных, поскольку действительными данными является состояние таблицы базы данных, которое нужно определить.
Есть много способов приблизиться к этому. Если я не знаю больше о том, что вы пытаетесь сделать, я не смогу найти надежного подробного решения.
Удачи
Других решений пока нет …