JavaScript: проверка на стороне клиента и на стороне сервера - PullRequest
162 голосов
/ 02 октября 2008

Что лучше сделать для проверки на стороне клиента или на стороне сервера?

В нашей ситуации мы используем

  • jQuery и MVC.
  • Данные JSON для передачи между нашим представлением и контроллером.

Большая часть проверки, которую я делаю, заключается в проверке данных при их вводе пользователями. Например, я использую событие keypress, чтобы запретить ввод букв в текстовом поле, установить максимальное количество символов и число в диапазоне.

Я думаю, что лучший вопрос был бы: есть ли какие-либо преимущества в проверке на стороне сервера по сравнению с клиентской?


Потрясающе отвечает всем. Наш веб-сайт защищен паролем и предназначен для небольшой пользовательской базы (<50). Если они не используют JavaScript, мы отправим ниндзя. Но если бы мы разрабатывали сайт для всех, я бы согласился провести валидацию с обеих сторон. </p>

Ответы [ 13 ]

1 голос
/ 20 ноября 2015

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

Client-Side validation идеально подходит для предотвращения грубых и случайных ошибок. Как правило, максимальная длина для текстуры и ввода. Не имитируйте правило проверки на стороне сервера; укажите собственное общее правило проверки эмпирического правила (например, 200 символов на стороне клиента; n на стороне сервера, что диктуется строгим бизнес-правилом).

Server-side validation идеально подходит для предотвращения систематических ошибок; это обеспечит соблюдение бизнес-правил.

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

Дополнительная литература: грубые, систематические, случайные ошибки:

https://answers.yahoo.com/question/index?qid=20080918203131AAEt6GO

0 голосов
/ 24 апреля 2019

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

Тем не менее, поскольку злоумышленник может обойти проверку на стороне клиента (и может вообще не использовать браузер), проверка на стороне сервера необходима и должна быть реальным средством защиты вашего бэкэнда от гнусных пользователей.

0 голосов
/ 02 октября 2008

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

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