Безопасные методы кодирования C ++ - PullRequest
10 голосов
/ 24 января 2011

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

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

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

Ответы [ 6 ]

3 голосов
/ 24 января 2011

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

Marshall Cline C ++ faq .Расскажу вам все о распространенных подводных камнях.Бесплатный онлайн.

3 голосов
/ 24 января 2011

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

1 голос
/ 09 октября 2017

Стандарт кодирования SEI CERT C ++ специально разработан для решения всех вопросов безопасности.CERT расшифровывается как Computer Emergency Response Team, которая является экспертной группой, которая занимается инцидентами компьютерной безопасности.

1 голос
/ 24 января 2011

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

0 голосов
/ 24 января 2011

Позвольте мне начать его.

  • Избегайте динамически распределенной памяти, используя malloc
  • (связанный), используйте массив фиксированного размера, когда это возможно, или используйте в C ++ избегайте массивов в стиле C, когда это практически возможно.
  • избегать использования (void *)
...