Главная » Зарубежная литература » Читать 19 смертных грехов, угрожающих безопасности программ полностью бесплатно онлайн | Майкл Ховард

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

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

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

Дата выхода

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 смертных грехов, угрожающих безопасности программ", адаптированная для комфортного онлайн-чтения. Мы разбили произведение на страницы для удобной навигации, а умная система запоминает, на какой странице вы остановились — можно закрыть браузер и вернуться к чтению позже, не тратя время на поиски. Персонализируйте процесс: меняйте шрифты, размер текста и фон под свои предпочтения. Погружайтесь в мир литературы где угодно и когда угодно — любимые книги теперь всегда под рукой.

Текст книги

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

Возможен компромисс: писать интерфейсные части программ, с которыми взаимодействуют пользователи, на языке высокого уровня, а основную часть кода – на низкоуровневом языке. Другое решение–в полной мере задействовать возможности С++ и пользоваться написанными для него библиотеками для работы со строками и контейнерными классами. Например, в Web–сервере Internet Information Server (IIS) 6.

Тут будет реклама 1
0 обработка всех входных данных переписана с использованием строковых классов; один отважный разработчик даже заявил, что даст отрезать себе мизинец, если в его коде отыщется хотя бы одно переполнение буфера. Пока что мизинец остался при нем, и за два года после выхода этого сервера не было опубликовано ни одного сообщения о проблемах с его безопасностью.
Тут будет реклама 2
Поскольку современные компиляторы умеют работать с шаблонными классами, на С++ теперь можно создавать очень эффективный код.

Но довольно теории, рассмотрим пример.

tinclude

void DontDoIhis (char* input)

{

char buf[16];

strcpy(buf, input);

printf("%s\n» , buf);

}

int main(int argc, char* argv[])

{

// мы не проверяем аргументы

// а чего еще ожидать от программы, в которой используется

// функция strcpy?

DontDoThis(argv[l]);

return 0;

}

Откомпилируем эту программу и посмотрим, что произойдет.

Тут будет реклама 3
Для демонстрации автор собрал приложение, включив отладочные символы и отключив контроль стека.
Тут будет реклама 4
Хороший компилятор предпочел бы встроить такую короткую функцию, как DontDoThis, особенно если она вызывается только один раз, поэтому оптимизация также была отключена. Вот как выглядит стек непосредственно перед вызовом strcpy:

0x0012FEC0  с8  fe 12 00 .. <– адрес аргумента buf

0x0012FEC4  с4 18 32 00 .2. <– адрес аргумента input

0x0012FEC8  d0 fe 12 00 .. <– начало буфера buf

0x0012FECC  04 80 40 00  .<>@.

0x0012FED0  el 02 3f 4f     .?0

0x0012FED4  66 00 00 00    f… <– конец buf

0x0012FED8  e4 fe 12 00     .. <– содержимое регистра EBP

0x0012FEDC  3f 10 40 00  ?.@. <– адрес возврата

0x0012FEE0  c4 18 32 00    .2. <– адрес аргумента DontDoThis

0x0012FEE4  cO ff 12 00     ..

0x0012FEE8  10 13 40 00  ..@. <– адрес, куда вернется main()

Напомним, что стек растет сверху вниз (от старших адресов к младшим). Этот пример выполнялся на процессоре Intel со схемой адресации «little–endian». Это означает, что младший байт хранится в памяти первым, так что адрес возврата «3f104000» на самом деле означает 0x0040103f.

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

Ваша оценка книги

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

Мнения

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

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