Пришло описание проблемы от заказчика: «При регистрации заявления о возврате бланков, у которых длина серии 3 знака, появляется ошибка, приведенная в приложении 1». Чтобы исправить проблему в коде, решил повторить ситуацию и проверить, откуда растут ноги у этой ошибки.
Попытался в программе оприходовать бланки с серией в три символа — нельзя, поле ввода серии рассчитано на два. Я кулхацкер или где? Оприходовал бланк с серией «ЫЫ», после чего руками в базе данных поменял значение на «ЫЫЫ».
Попытался в программе реализовать данный бланк — нельзя, бланки с ошибочной серией даже не отображаются в списках выбора. Я кулхацкер или где? Поменял серию бланка назад на «ЫЫ», реализовал, после чего снова руками в базе данных поменял серию на «ЫЫЫ».
Попытался в программе зарегистрировать заявление о возврате — нельзя, бланк опять не отображается из-за неверной серии.
В программе такой косяк сделать нельзя — там более девяти контролей стоит, которые отсекают все попытки накосячить; даже если поломать базу руками, всё равно ничего не получится. Подумал было, что заказчик так хитро издевается, но передо мной лежат два скриншота, где у них выбран кривой бланк и на экране ошибка. Как, как они это сделали?
Криволапый пользователь с лёгкостью порвёт систему, которую не смог поиметь матёрый хакер, и даже не поймёт при этом, что он натворил и как его угораздило.