Вход/Регистрация
19 смертных грехов, угрожающих безопасности программ
вернуться

Виега Джон

Шрифт:

□ Не передавайте хранимым процедурам непроверенные параметры.

□ Не ограничивайтесь простым дублированием символов одинарной и двойной кавычки.

□ Не соединяйтесь с базой данных от имени привилегированного пользователя, например sa или root.

□ Не включайте в текст программы имя и пароль пользователя, а также строку соединения.

□ Не сохраняйте конфигурационный файл с параметрами соединения в корне Web–сервера.

Стоит подумать

□ О том, чтобы запретить доступ ко всем пользовательским таблицам в базе данных, разрешив лишь исполнение хранимых процедур. После этого во всех запросах должны использоваться только хранимые процедуры и параметризованные предложения.

Грех 5.

Внедрение команд

Рекомендуется

□ Проверяйте все входные данные до передачи их командному процессору.

□ Если проверка не проходит, обрабатывайте ошибку безопасно.

Не рекомендуется

□ Не передавайте непроверенные входные данные командному процессору, даже если полагаете, что пользователь будет вводить обычные данные.

□ Не применяйте подход «все кроме», если не уверены на сто процентов, что учли все возможности.

Стоит подумать

□ О том, чтобы не использовать регулярные выражения для проверки входных данных; лучше написать простую и понятную процедуру проверки вручную.

Грех 6.

Пренебрежение обработкой ошибок

Рекомендуется

□ Проверяйте значения, возвращаемые любой функцией, относящейся к безопасности.

□ Проверяйте значения, возвращаемые любой функцией, которая изменяет параметры, относящиеся к конкретному пользователю или машине в целом.

□ Всеми силами постарайтесь восстановить нормальную работу программы после ошибки, не допускайте отказа от обслуживания.

Не рекомендуется

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

□ Не допускайте утечки информации не заслуживающим доверия пользователям.

Грех 7.

Кросс–сайтовые сценарии

Рекомендуется

□ Проверяйте корректность всех входных данных, передаваемых Web–приложению.

□ Подвергайте HTML–кодированию любую выводимую информацию, формируемую на основе поступивших входных данных.

Не рекомендуется

□ Не копируйте ввод в вывод без предварительной проверки.

□ Не храните секретные данные в куках.

Стоит подумать

□ Об использовании как можно большего числа дополнительных защитных мер.

Грех 8.

Пренебрежение защитой сетевого трафика

Рекомендуется

□ Пользуйтесь стойкими механизмами аутентификации.

□ Аутентифицируйте все сообщения, отправляемые в сеть вашим приложением.

□ Шифруйте все данные, которые должны быть конфиденциальны. Лучше перестраховаться.

□ Если возможно, передавайте весь трафик по каналу, защищенному SSL/ TLS. Это работает!

Не рекомендуется

□ Не отказывайтесь от шифрования данных из соображений производительности. Шифрование на лету обходится совсем недорого.

□ Не «зашивайте» ключи в код и ни в коем случае не думайте, что XOR с фиксированной строкой можно считать механизмом шифрования.

□ Не игнорируйте вопросы защиты данных в сети.

Стоит подумать

□ Об использовании технологий уровня сети, способных еще уменьшить риск. Речь идет о межсетевых экранах, виртуальных частных сетях (VPN) и балансировании нагрузки.

Грех 9.

Применение загадочных URL и скрытых полей форм

Рекомендуется

□ Проверяйте все данные, поступающие из Web, в том числе и посредством форм, на признаки злоумышленности.

□ Изучите сильные и слабые стороны применяемого вами подхода, если вы не пользуетесь криптографическими примитивами.

  • Читать дальше
  • 1
  • ...
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: