JavaScript — переключатели и флажки. Запретить изменение атрибута значения

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

<input name="statement" type="radio" value="AWENSOME">

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

<input name="statement" type="radio" value="NOT SO AWENSOME! STUPID">

Как можно предотвратить это, ребята? Спасибо.

1

Решение

Может быть, что-то подобное в вашей модели поможет, если вы используете php:

if ($data['statement'] == 'AWENSOME' || $data['statement'] == 'FOOBAR' )
{
$statement = $data['statement'];
} else
{
// abort the app or return an error to the user
}
1

Другие решения

Нет, вы не можете, лучше всего собрать все допустимые входные значения в базе данных и проверять эти значения каждый раз на сервере. Это легко сделать в случае таких входов, как checkbox, select, radio, потому что вы точно знаете, какими могут быть значения. В случае ввода текста, вы должны использовать регулярное выражение и sanitanization.

2

Вы не можете полностью запретить пользователю изменять HTML-скрипты в браузере, но вы можете запретить ввод ненужных данных в вашу базу данных.

Чтобы предотвратить это, у вас должен быть валидатор в ваших php-скриптах на стороне сервера.

Есть много способов предотвратить ввод неверных данных в БД:

  1. составить список допустимых значений в базе данных, и как только пользователь выберет его, сервер проверит, существует ли значение в флажке или радио
  2. сделать значение для радио / флажок зашифрованным или скажем, есть какой-то уникальный формат, например zkdie23doo44s которые могут быть идентифицированы вашим сервером ..
  3. периодически проверяйте флажки html и перезагружайте значения, основанные на оригинальном html-скрипте на сервере

надеюсь, что это помогло вам получить идею или две ..

1

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

1
По вопросам рекламы [email protected]