Рейтинг:
1
OriginalGriff
Первое, что вам нужно узнать, - это проверка входных данных: это означает проверку того, что пользователь ввел, чтобы убедиться, что это правильные, действительные и разумные данные. Для значения "год рождения" значение "0001" не является действительным - неразумно предполагать, что кто-то, родившийся более 2000 лет назад, все еще жив!
Так что прочтите пользовательский ввод, проверьте его числовое значение и проверьте его;s "разумно": самый старый проверенный живой человек был 122 (Список проверенных старейших людей - Википедия[^]) Итак, предположим, что текущий год до текущего года минус 130-это "разумный" диапазон для лет. Если это снаружи, кто - то делает ошибки или играет в глупых жукеров-поэтому отвергните их вклад и дайте им шанс исправить его.
Только когда все данные действительны и разумны, вы передаете что - либо в свою БД-это важно, потому что, хотя довольно просто обнаружить и исправить проблемы в точке ввода, становится все труднее, как только данные находятся в БД, чем дольше плохие данные находятся в БД, тем труднее их исправить!
Member 14082835
Насколько я знаю, существует проверка на стороне клиента и сервера ? еще можно взломать или обойти возрастное ограничение ? кроме этих, возможны любые другие проблемы, такие как вставка нулевых значений и т. д.? я поискал его в Гугле, но больше информации об этом не нашел. Не могли бы вы предоставить мне более подробную информацию по этому вопросу?
OriginalGriff
Очевидно, что никакой проверки "разумности" не существует - базовая проверка валидности просто проверит, что это число, а не то, что оно находится в определенном диапазоне.
Если бы у вас была проверка "разумности", вы бы не получали даты, передаваемые в SQL, которые дают такие ошибки, как:
Переполнение SqlDateTime. Должно быть между 1/1/1753 12:00:00 утра и 12/31/9999 11:59:59 вечера
MadMyche
Просто потому, что есть валидация, это не означает, что валидация сама по себе является валидной. В настоящее время самый старый человек в мире родился в 1899 году-так что во всей реальности проверка должна убедиться, что DOB происходит после 1899 года и до сих пор
Member 14082835
вызовет ли это какие-либо проблемы или я могу игнорировать его ?
OriginalGriff
Конечно, будет! Если это не удастся, запись не попадет в базу данных ... все равно что пытаться приклеить целого тунца в альбом для марок, используя эти дурацкие маленькие кусочки "едва липкой бумаги"