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

Автор
Дата выхода
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.
Но довольно теории, рассмотрим пример.
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;
}
Откомпилируем эту программу и посмотрим, что произойдет.
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.





