ASP.NET MVC: достаточно ли проверки аннотаций данных?

я широко использую валидацию аннотаций данных в ASP.NET MVC 2. Эта новая функция значительно сэкономила время, поскольку яТеперь я могу определять как проверку на стороне клиента, так и проверку на стороне сервера в одном месте. Однако, пока я проводил подробное тестирование, я понял, что этоДля кого-то довольно легко обойти проверку на стороне сервера, если бы я использовал только проверку аннотации данных. Например, если я определил обязательное поле, пометив свойство с помощью атрибута [Required] и поместил текстовое поле для этого обязательного поля в форме, пользователь мог бы просто удалить текстовое поле из DOM (что можно легко сделать с помощью Firebug) и теперь проверка аннотации данных не будет запускаться для этого свойства во время связывания модели внутри контроллера. Чтобы убедиться, что "требуется" проверка запускается, я могу повторить проверку после того, как ModelBinding произойдет, но тогда я 'буду повторять мою логику проверки.

Что такое каждый?Рекомендация по валидации? Достаточно ли валидации аннотации данных? Или необходимо повторить проверку, чтобы убедиться, что проверки запускаются во всех ситуациях?

Последующий комментарий: Исходя из ответов ниже, кажется, что я могуне полагайтесь только на проверку связывателя модели и аннотации данных. С тех пор, как мы'Приходя к выводу, что требуется дополнительная проверка на стороне сервера, есть ли у моего уровня обслуживания простой способ инициировать проверку на основе того, что 'определены в аннотациях данных? Похоже, это даст нам лучшее из обоих слов ... мы выиграли »не нужно повторять проверочный код, но мыпо-прежнему будет гарантировать, что проверка выполняется, даже если Model Binder неэто не срабатывает.

Я собираюсь опубликовать этот дополнительный комментарий как отдельный вопрос, так как он ставит вопрос, отличный от исходного.

Ответы на вопрос(5)

Ваш ответ на вопрос