19 смертных грехов, угрожающих безопасности программ

На нашем сайте вы можете читать онлайн «19 смертных грехов, угрожающих безопасности программ». Эта электронная книга доступна бесплатно и представляет собой целую полную версию без сокращений. Кроме того, доступна возможность слушать аудиокнигу, скачать её через торрент в формате fb2 или ознакомиться с кратким содержанием. Жанр книги — Зарубежная литература, Зарубежная компьютерная литература. Кроме того, ниже доступно описание произведения, предисловие и отзывы читателей. Регулярные обновления библиотеки и улучшения функционала делают наше сообщество идеальным местом для любителей книг.

0 баллов
0 мнений
1 чтение

Дата выхода

29 июля 2011

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

Прежде чем читать книгу целиком, ознакомьтесь с предисловием, аннотацией, описанием или кратким содержанием к произведению 19 смертных грехов, угрожающих безопасности программ. Предисловие указано в том виде, в котором его написал автор (Майкл Ховард) в своем труде. Если нужная информация отсутствует, оставьте комментарий, и мы постараемся найти её для вас. Обратите внимание: Читатели могут делиться своими отзывами и обсуждениями, что поможет вам глубже понять книгу. Не забудьте и вы оставить свое впечатие о книге в комментариях внизу страницы.

Описание книги

Эта книга необходима всем разработчикам программного обеспечения, независимо от платформы, языка или вида приложений. В ней рассмотрены 19 грехов, угрожающих безопасности программ, и показано, как от них избавиться. Рассмотрены уязвимости на языках C/C++, C#, Java, Visual Basic, Visual Basic.NET, Perl, Python в операционных системах Windows, Unix, Linux, Mac OS, Novell Netware. Авторы издания, Майкл Ховард и Дэвид Лебланк, обучают программистов, как писать безопасный код в компании Microsoft. На различных примерах продемонстрированы как сами ошибки, так и способы их исправления и защиты от них. Если вы программист, то вам просто необходимо прочесть эту книгу.

19 смертных грехов, угрожающих безопасности программ читать онлайн полную книгу - весь текст целиком бесплатно

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

Текст книги

Шрифт
Размер шрифта
-
+
Межстрочный интервал

Проверьте циклы и доступ к массивам

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

Пользуйтесь строками в стиле С++, а не С

Это эффективнее простой замены стандартных С–функций, но может повлечь за собой кардинальную переработку кода, особенно если программа собиралась не компилятором С++.

Вы должны хорошо представлять себе характеристики производительности STL–контейнеров. Вполне возможно написать очень эффективный код с использованием STL, но, как всегда, нежелание читать руководство (RTFM – Read The Fine Manual) может привести к коду, далекому от оптимального. Наиболее типичное усовершенствование такого рода – переход к использованию шаблонных классов std::string или std::wstring.

Пользуйтесь STL–контейнерами вместо статических массивов

Все вышеупомянутые проблемы относятся и к STL–контейнерам, например vector, но ситуация осложняется еще и тем, что не все реализации класса vector::iterator контролируют выход за границы контейнера.

Указанная в заголовке мера может помочь, и автор полагает, что STL способствует быстрому написанию правильного кода, но имейте в виду, что это все же не панацея.

Пользуйтесь инструментами анализа

На рынке появляются прекрасные инструменты для анализа кода на языках C/C++ на предмет нарушения безопасности, в том числе Coverity, PREfast и Kloc–work.

В разделе «Другие ресурсы» приведены ссылки. В состав Visual Studio .NET 2005 войдет программа PREfast и еще один инструмент анализа кода под названием Source code Annotation Language (SAL – язык аннотирования исходного текста), позволяющий обнаружить такие дефекты, как переполнение буфера. Проще всего проиллюстрировать SAL на примере. В показанном ниже фрагменте (примитивном) вы знаете, как соотносятся аргументы data и count: длина data составляет count байтов.
Но компилятору об этом ничего не известно, он видит только типы char * and a size_t.

void *DoStuff(char *data, size_t count) {

static char buf[32];

return memcpy(buf, data, count);

}

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

Добавить мнение

Ваша оценка

Кликните на изображение чтобы обновить код, если он неразборчив

Мнения

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

Другие книги автора

Понравилась эта книга? Познакомьтесь с другими произведениями автора Майкл Ховард! В этом разделе мы собрали для вас другие книги, написанные вашим любимым писателем.

Похожие книги