Вопрос

Я ищу полную запись о безопасных методах кодирования в C ++. Поскольку я не нашел такой список, существующий здесь, мы могли бы также превратить это в вики сообщества для дальнейшей ссылки. Я ищу решения для проблем безопасности, таких как переполнение буфера и недостатков на основе стека и кучей, переполнения целочисленного целого числа, атаки формата, атаки строк, нулевое указатель, атаки инспекции кучи/памяти и т. Д.

NB: Помимо практики кодирования, безопасные библиотеки, которые защищают от такого рода атак, стоит упомянуть.

LE: Как предложено Msalters в комментариях, этот вопрос был разделен на два отдельных вопроса один для C ++ и один для C. также см. Безопасные методы кодирования C.

Это было полезно?

Решение

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

Другие советы

Херб Саттер "Исключительный C ++" и "C ++ Стандарты кодирования". Бесценен.

Маршалл Клайн C ++ FAQ. Анкет Расскажу вам все о общих ловушках. Бесплатно онлайн.

Я нашел эту книгу очень полезной Secure Programming Cookbook для C и C ++: Рецепты для криптографии, аутентификации, проверки ввода и многого другого

У него есть много примеров как для Linux (POSIX), так и для Windows в отличие от предыдущих упомянутых Написание безопасного кода, второе издание.

АСтандарты кодирования авиаперевозок C ++это хорошее начало, даже если это относится в основном к надежности, а не к безопасности.

А SEI CERT CERT C ++ Стандарт кодирования особенно разработан, чтобы охватить все виды проблем безопасности. CERT стоит за командой реагирования на экстренную помощь компьютером, которая является экспертной группой, которая занимается инцидентами компьютерной безопасности.

Позвольте мне начнуть это

  • Избегайте динамически распределенной памяти, используя Malloc
  • (Связанный) Используйте массив фиксированного размера, если это когда -либо возможно, или на самом деле в C ++. Избегайте массивов стилей C, когда практические
  • Избегайте использования (void *)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top