asp.net mvc 5 должен выполняться проверка на стороне сервера, если сначала запускается клиентская сторона

У меня есть класс атрибутов проверки, который работает на стороне сервера, который проверяет текстовое поле формы. Я также реализовал его на стороне клиента в вызове javascript. Мой вопрос: если клиентская сторона вызывается и возвращает true, должна ли серверная сторона также вызываться? Должны ли вызываться как клиентская, так и серверная стороны? Похоже, что если проверка на стороне клиента пройдет, то не будет необходимости снова вызывать какую-либо проверку на стороне сервера. Просто кажется немного избыточным проверять что-то дважды.


person user1186050    schedule 24.02.2015    source источник


Ответы (3)


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

person Eric King    schedule 24.02.2015

Да, это абсолютно необходимо.

Причина в том, что если кто-то обходит ваш сайт и звонит прямо на ваш сервер? Что, если они попытаются ввести неверные данные, чтобы сломать ваш сайт? Без проверки на стороне сервера вы оставите себя незащищенным.

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

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

person Ian    schedule 24.02.2015
comment
Просто кажется, что должен быть способ проверить, была ли вызвана проверка на стороне клиента, и если она прошла, то не запускать проверку на стороне сервера. - person user1186050; 24.02.2015
comment
@user1186050 user1186050 Как сервер узнает? Клиент должен был рассказать об этом, верно? А поскольку клиент находится вне контроля сервера, сервер можно легко обмануть. - person Eric King; 25.02.2015
comment
@ user1186050: Просто хочу отметить, что если один из ответов помог вам, вы должны принять его как ответ. Если нет, то не стесняйтесь запрашивать более подробную информацию в комментариях или путем редактирования вашего вопроса. - person Ian; 25.02.2015

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

person Azeez Arewa    schedule 24.02.2015