Intereting Posts
Не удается получить тело сообщения определенных почтовых ящиков из почтовых ящиков с использованием рамки Zend? Идентификатор ресурса # 4 Почему я получаю это? PHP-цикл: добавьте div вокруг каждого трех элементов синтаксиса Почему strtotime дает разные результаты в разных часовых поясах? Как создать новую страницу в панели администратора prestashop? Изменение допустимых полей, необходимых для обратного вызова beforeFind? Отправьте форму php и покажите ее результат на div без перезагрузки страницы как переместить текущую запись в другую таблицу и удалить текущую запись Как проверить, включен ли PHP mail ()? Ошибки в Unknown on Line 0 после обновления PHP Доступ к php-файлам через ссылку в Интернете Как я могу назвать одну из многих функций php с помощью ajax? Защищенная пользовательская переменная PHP Несколько кнопок отправки php разных действий Почему Normalizer :: normallize (PHP) не работает?

HTML – Как запретить пользователю изменять значение формы?

Я разрабатываю простые веб-приложения, которые позволяют пользователю вводить информацию с помощью формы, когда я обнаружил, что могу изменить значение ввода по умолчанию этой формы с помощью Chrome -> Check Element и отправить страницу с другим hacked значением.

Код:

 <input id="radioOk_100237" name="radio_100237" type="radio" checked="" value="0"> 

Как обычно, я загружаю страницу, используя Google Check Check Element, я нацелил этот флажок и изменил значение на «9», прежде чем отправить его, на моей фоновой странице он читает «9» вместо предварительно заданного значения «0», из этого входного элемента.

Если каждый пользователь изменил значение и отправил, он полностью избил бы мою БД. Как это возможно, и я должен зашифровать страницу или сделать что-то до отправки? Я полностью потерял, кстати, я использую PHP.

Для обычных пользователей вы можете просто добавить атрибут readonly в поле формы.

Для более продвинутых пользователей / хакеров, которые пытаются манипулировать вашим сервером, вам необходимо проверить каждую часть данных, которые были отправлены для обеспечения того, чтобы подделка была обнаружена и отклонена. Для этого нет никакой технологии на стороне клиента, которая защищена от несанкционированного доступа.

Вы не можете запретить пользователям изменять, добавлять или удалять элементы в DOM. Если вам нужен такой контроль, вы должны сохранить значения элементов, которые вы выводите в объекте, а затем сравнить то, что входит в сообщение формы.

Есть миллион способов сделать это, если вы хотите плохо опубликовать пример

Вы должны выполнять проверку на стороне сервера, чтобы убедиться, что значения, которые вы получаете от вашего клиентского приложения, имеют смысл. Если вы знаете, что значение «9» будет «разбивать вашу БД», не принимайте значения 9 от клиента.

Обязательная ссылка XKCD: http://xkcd.com/327/

Вы можете проверить правильность значения на стороне сервера. Фактически вы должны проверять все отправленные данные с клиентской стороны, чтобы предотвратить атаку