Где вы помещаете проверку ввода пользователя в приложении веб-формы?
- Вид: клиентская сторона JavaScript
- Контроллер: язык на стороне сервера (С#...)
- Модель: база данных (хранимые процедуры или зависимости)
Я думаю, что на каждом уровне требуется подтверждение:
- Пользователь вводил значение разумного значения
- - даты фактических дат, цифры действительные числа...
- Выполняйте все проверки в 1. снова плюс проверки на наличие вредоносных атак (IE XSS или SQL-инъекция)
- Проверки, сделанные в 1., главным образом, чтобы избежать взаимной поездки сервера, когда пользователь совершает ошибку.
- Поскольку они выполняются на стороне клиента в javascript, вы не можете доверять их запуску. Повторная проверка этих значений приведет к остановке некоторых вредоносных атак.
- Соответствуют ли зависимости (т.е. добавил ли пользователь комментарий к действительному вопросу)
- Хороший интерфейс очень сильно нарушает их. Если что-то поймано здесь, что-то пошло не так.
[вдохновлен этим ответом]