2011-01-12 1 views
1

Я вижу все эти учебники о том, как можно использовать Javascript для проверки ввода (проверяя, чтобы, например, было видно, что письмо действительно), но ничто не мешает кому-либо загружать форму, отключать Javascript, а затем отправлять плохой ввод без прохождения через испытания.Есть ли способ сделать валидацию с Javascript надежным?

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

Но опять-таки, файл js отправляется пользователю, он может видеть HTML, и не слишком сложно обойти это.

Чем больше я думаю об этом, тем больше я уверен, что нет смысла проверять вещи с помощью javascript, так как вам все равно придется повторять тесты на стороне сервера, что вызывает вопрос о том, почему люди даже беспокоятся о Javascript как инструмент проверки.

Я что-то упустил?

+3

Проверка с помощью Javascript может обеспечить более удобный интерфейс. –

+0

Вот почему вы всегда должны также проверять данные на сервере;) Проверка на стороне клиента для пользователя, проверка на стороне сервера для вашей системы. не vv. –

ответ

2

Хотя проверка на стороне сервера является обязательной, проверка на стороне клиента с использованием Javascript определенно рекомендуется.

  • Интерактивная обратная связь. Пользователь может видеть немедленную обратную связь о том, действительно ли его ввод действителен.
  • Лимит страницы освежает. Для проверки на стороне сервера требуется запрос к серверу, а на стороне клиента - нет. Большинство «отказов» проверки достоверности обусловлены пропущенными полями или недопустимыми данными, которые могут быть легко идентифицированы с помощью проверки JavaScript.

Существует множество библиотек, которые могут помочь добавить общую проверку на стороне клиента с помощью javascript. Большинство из них почти не прилагают усилий для включения в форму.

1

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

1

Единственный способ надежной проверки на стороне клиента - повторить его на сервере.

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

1

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

Все проверки на стороне клиента действительно обеспечивают лучший пользовательский опыт, поскольку в конце вы можете НИКОГДА доверять клиенту.

0

Проверка подлинности JavaScript никогда не может быть доверена. Это удобный способ сообщить пользователю, что он терпит неудачу. HTTP-запрос всегда может быть сделан для добавления недопустимых данных. На клиентском компьютере работает JavaScript. Клиентам нельзя доверять. Они делают ошибки, делают глупые вещи, о которых вы не думали, чтобы обойти проверку, отключить javascript, чтобы они чувствовали себя в безопасности, создавать пользовательские HTTP-запросы, потому что они чувствуют себя круто, они могут «взломать» и т. Д. Пользователи глупы, злы, неуклюжи , ненадежный, а иногда даже более умный, как вы.

1

Проверка на стороне клиента устраняет необходимость в поездке по сети на сервер и улучшает работу пользователя.

Проверка на стороне сервера защищает целостность данных. Никогда не доверяйте пользователю и редко доверяйте программисту.

Смежные вопросы