Правильный способ создания HTML-форм (выбор входа) - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь понять, как создавать HTML-формы.
Основная проблема, которая меня беспокоит - изменить значение ввода с помощью консоли разработчика (например, выбрать входы)

<select name="select">
  <option value="0">ex 1</option>
  <option value="1">ex 2</option>
</select>

Пользователь просто может нажать F12 и изменить значение, которое отправляется на сервер:

<select name="select">
  <option value="99999">ex 1</option>
  <option value="12345">ex 2</option>
</select>

В результате неверное значение будет отправлено на сервер.
Как решить эту проблему?
Я понимаю, что вы можете проверить допустимые значения на сервере, но что, если вариантов много?
Я видел сайты, на которых реализованы формы, и если в этом случае происходит изменение значения, сервер все равно будет корректно обрабатывать входящие данные (будут отображаться правильные данные или правильная форма будет загружена через AJAX). Я не понимаю, как форма игнорирует изменение значения через консоль разработчика.
Извините за мой плохой английский.

Ответы [ 2 ]

0 голосов
/ 08 января 2019

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

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

Например:

$allowed_values = [0,1];

if (!in_array($_GET['select'], $allowed_values) {
   die('Please select a valid option');
}

Если они отправляют что-то еще, кроме того, что вы указали, не позволяйте вашей системе прогрессировать.

В идеале не просто выкидывать их на какую-то пустую страницу с сообщением об ошибке, я бы посоветовал изящно вернуть их в вашу форму и выделить, какая часть была недействительной.

Всегда проверяйте все, что представлено, есть множество хороших / плохих примеров (широкий вопрос) по теме.

Конечно, вы можете реализовать проверку на стороне клиента с помощью JS , или некоторые вещи можно выполнить непосредственно в HTML , что будет удобнее для пользователя, но это так же легко манипулировать, поэтому если вы идете по этому пути, это должно быть сделано в дополнение к вашей проверке PHP, а не вместо.

0 голосов
/ 08 января 2019

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

(простите за мой английский)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...