Как я могу запретить пользователям форматировать формы на стороне PHP или jquery, я использую функцию jjery ajax для отправки форм, а это означает, что люди с технологией могут изменять некоторые переменные, такие как ценность чего-то (что не должно быть изменено / является идентификатором пользователя или что-то в этом роде) с помощью firebug или веб-инспектора и аналогичным образом.
Итак, как я могу запретить пользователям изменять эти переменные или убедиться, что они неизменяемы безопасным и хорошим способом?
благодаря
Как уже указывали другие, вы не можете помешать пользователю вмешаться.
Вы получаете от меня данные, и я могу отправить вам все, что захочу, я даже могу выполнить HTTP-запрос вручную, даже не используя браузер, и вы ничего не можете с этим поделать.
Если вы не хотите, чтобы пользователь мог изменять информацию, не предоставляйте его ему.
Вы можете сохранить его на сеансе PHP, который хранится на стороне сервера (не используйте файлы cookie, они также отправляются пользователю) или сохраняются в базе данных, и оба они недоступны для конечного пользователя.
Если вы все еще хотите передать данные пользователю, вычислите какой-то хэш ( безопасный хеш, используя безопасный алгоритм хэширования и дайджест безопасного сообщения, как отметил Gumbo, это исключает алгоритмы, такие как CRC32 или MD5 и MAC, такие как ваше имя или день рождения) данных и хранить их на стороне сервера, а затем, когда пользователь передает данные, проверьте соответствие хэшей.
Но знайте, что это решение не на 100% безопасно. Хеширующие функции имеют коллизии, и существует плохая реализация.
Я бы рекомендовал придерживаться золотого правила: если его там нет, он не может быть разбит / подделан / украден / и т. Д.
Вы не можете запретить пользователям делать это.
Храните эти переменные в сеансе.
Вы никогда не сможете доверять клиенту. Подтвердите форму на сервере, чтобы обеспечить правильность данных. Это означает проверку того, что данный идентификатор пользователя имеет разрешения на публикацию формы и т. Д.
Я собираюсь пойти … ты не можешь. Вы никогда не доверяете данным пользователя; проверка на стороне клиента всегда только первая линия защиты.