Как стать автором
Обновить

Комментарии 13

НЛО прилетело и опубликовало эту надпись здесь
Вообще говоря, бороться с этим бесползено. Люди любо понимают, либо не понимают. Почему? В качестве примера я люблю вспоминать громкие истории про вирусы и антивирусы. Сколько лет подряд все твердят "не запускайте файлы, пришедшие по почте!"? Однако количество внутрисетевых атак как бы не сильно уменьшилось, по прежнему то там то тут можно услышать как "кто-то запустил очередной аттач и всё рухнуло".
Такая ситуация будет повторятся, её вряд ли искоренишь, и какой-то определённый процент людей, не понимающих, что такое SQL injection, XSS и прочие радости жизни, будет всегда и везде.
Люди не читают (много ли программистов читало code complete?) ни книги, ни чужой код, банально ссылаясь на недостаток времени, а отсюда нет роста в знаниях даже над самим собой.
НЛО прилетело и опубликовало эту надпись здесь
Могу добавить лишь, что если вы вдохновились и решили перешерстить защиту своих сайтов - необязательно даже писать кучу функций для разнообразных проверок -
ибо основные из них свободно распространяются (я так понимаю обновляются и совершенствуются) например ЗДЕСЬ.
Написание кода, в котором отсутствуют "дыры" требует от разработчика гениальности...
даже не гениальный разработчик должен стремиться к минимизации количества "возможных" дыр ;)
За использование assertions для проверки пользовательского ввода оторвал бы руки!
Тут все же идет речь о том, что нужно проверять входящие данные наиболее удобными/адекватными методами. Какими именно в конкретных случаях - это уже другой разговор.

Входящие данные после некоторой проверки попадают в методы/функции и как раз тут может быть полезно сделать несколько assertions. В конкретном примере c тазиками, это утверждение (iQuantity > 0, iItemPrice > 0, etc) может быть добавлено в метод подсчитывающий общую сумму заказа.

Возможно, что этот метод будет скопирован в другую программу, где проверка входящих данных с пользовательского интерфейса реализована некорректно. Программа тогда сработает принципу «мусор на входе – ничего на выходе», т.к. вывалится с ошибкой. Но это значительно лучше, чем совершение некорректной транзакции.

Конечно, пример условный. Конкретное решение всегда зависит от множества параметров - языка разработки, используемых паттернов, стандартов кодирования, программных компонентов и так далее.
то что мусор на входе не стоит заменять на дефаулт значения это ясно, а где книгу купить?
Книга эта известная и популярная, должна продаваться в большинстве магазинов.
Например, некоторые варианты.

Кроме того, в сети гуляет .deju вариант, но я его скачать не смог :)
спасибо электронный вариант уже нашёл.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории