Проверить форму на стороне клиента, на стороне сервера или в форме Ajax? - PullRequest
2 голосов
/ 11 сентября 2010

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

Мне интересно, должен ли я также выполнять проверку на стороне сервера после отправки формы или просто игнорировать и предполагать, что все правильно, поскольку проверка на стороне клиента прошла успешно?

Однако следует помнить о двух вещах:

1) Хотя форма может быть отправлена ​​без JavaScript, сценарий на стороне сервера не будет обрабатывать это поведение. Я имею в виду, что данные будут обработаны и вставлены в базу данных, но ничего не вернут, поэтому после отправки формы пользователь увидит пустую страницу. И, кроме того, это приложение хорошо работает на JavaScript и не будет работать без него (кстати, это приложение Facebook).

2) В настоящий момент приложение очень простое, и в этой форме есть только 2 варианта. Одним из них является текстовое поле, и это единственная проверяемая вещь (она обязательна и должна состоять только из цифр). Другой вариант - это набор переключателей, для которых по умолчанию выбрана одна из них, поэтому, даже если пользователь забудет об этой опции, что-то будет выбрано. Это значение по умолчанию для этой опции (хотя для текстового поля не может быть значения по умолчанию).

Ответы [ 2 ]

5 голосов
/ 11 сентября 2010

На стороне сервера: Необходимо.Всегда делайте это.

На стороне клиента: Приятно.Делает ваше приложение более отзывчивым.Дополнительно.

1 голос
/ 11 сентября 2010

Всегда проверяйте на стороне сервера! Помимо вопросов безопасности, которые могут не играть здесь большую роль, есть и другие вещи, которые необходимо соблюдать:

  • Что происходит, когда я отправляю что-то вроде "q8" в поле "две цифры" (минуя проверку на стороне клиента)?
  • Не совсем удобно просто установить параметр по умолчанию, если пользователь ничего не выбрал.

Кроме того, если в форме есть только два поля, я думаю, что не так много усилий для реализации проверки на стороне сервера ...

...