Member 14082835 Ответов: 1

Переполнение Sqldatetime.. Вызовет ли это какие-либо проблемы ? возможен ли в этом случае какой-либо взлом или обход возрастных ограничений?


Переполнение SqlDateTime.Будут ли причины каких-либо проблем ? Если да, то что это такое ? возможен ли в этом случае какой-либо взлом или обход возрастных ограничений ?

У меня нет никаких знаний по программированию...

Что я уже пробовал:

У нас есть сайт с возрастными ограничениями. Если пользователь хочет зарегистрироваться на нашем сайте , ему должно быть 18 лет.Насколько я знаю, существует проверка на стороне клиента и сервера ?

когда я попытался зарегистрироваться на нашем сайте, я открыл элемент inspect в поданной форме и добавил "0001" в список year, при отправке формы получаю ошибку типа

Переполнение SqlDateTime. Должно быть, между 1/1/1753 12:00:00 утра и 12/31/9999 11:59:59 вечера.

1 Ответов

Рейтинг:
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

Конечно, будет! Если это не удастся, запись не попадет в базу данных ... все равно что пытаться приклеить целого тунца в альбом для марок, используя эти дурацкие маленькие кусочки "едва липкой бумаги"