Я работаю над проектом веб-приложения (на java; это не имеет значения), и у нас есть форма с раскрывающимися списками и полями ввода.
Очевидно, что выпадающие списки предоставляются, потому что мы ожидаем конкретное значение из набора значений.
Итак, мой вопрос: имеет ли смысл гарантировать, что отправленное значение находится в наборе ожидаемых значений? Или допустимо просто предположить, что встречается правильное значение?
Нет никаких «ошибок», которые могли бы возникнуть из-за отправки разных значений, но хранилище данных не будет соответствовать бизнес-правилам / требованиям.






Вы определенно должен проверяете, что отправленное значение находится в наборе ожидаемых значений. Это банальный, чтобы использовать firebug для отправки всего, что вы хотите, в раскрывающемся списке.
Лучшая практика: Предположите, что каждый пользователь - грязный хакер, который нападает на вас и сделает все, что в их силах, чтобы вывести ваш сайт из строя.
Поэтому обязательно, чтобы все данные проверялись на стороне сервера.
Хакеры не используют вашу форму. Они создают данные произвольной формы и отправляют их другими способами. Фактически, хакер даже не знает, что делает ваш сайт - их сканер просто бродил по вашему сайту и отправлял случайные данные.
Я использую обширную проверку на стороне клиента (валидаторы C#) и проверяю каждое поле в своих формах. Таким образом, когда пользователь использует мои формы, когда они наконец попадают на сервер, данные должны быть в порядке.
Но мы все равно получаем неверные данные! Это хакер, исследующий сайт своими собственными инструментами.
Не то чтобы мы были хорошей целью - у нас нет финансовых отчетов, доступных в сети, и что? если вы можете пользоваться нашим сайтом бесплатно. Проблема в том, что хакеры этого не знают и все равно исследуют.
Как пользователь может отправить значение, которого нет в списке вариантов? Вы пытаетесь поймать людей, которые копируют код из View Source, изменяют его и отправляют? И разве хранилище данных не имеет ограничения внешнего ключа для таблицы, содержащей допустимые значения?