Ответ 1
Книга Написание безопасного кода очень хорошо объясняет проблемы безопасности и как их избежать. Книга не работает некоторое время, но большинство затронутых тем все еще актуальны.
Я ищу исчерпывающий отчет о безопасных методах кодирования в С++. Поскольку я не нашел такой список, существующий здесь, мы могли бы также сделать это в вики сообщества, для дальнейших ссылок. Я ищу решения проблем безопасности, таких как переполнение и переполнение буфера на стеке и на куче, переполнение и переполнение целых чисел, а также форматирование строковых атак, разыменование нулевых указателей, атаки на кучу/память и т.д.
Примечание. Помимо методов кодирования, заслуживают внимания и защищенные библиотеки, защищающие от подобных атак.
LE: Как предложил MSalters в комментариях, этот вопрос был разделен на два отдельных вопроса: один для С++ и один для C. Также см. Практики безопасного кодирования C.
Книга Написание безопасного кода очень хорошо объясняет проблемы безопасности и как их избежать. Книга не работает некоторое время, но большинство затронутых тем все еще актуальны.
Herb Sutter "Исключительные С++" и "Стандарты кодирования С++". Бесценный.
Marshall Cline С++ faq. Расскажу вам все об общих ловушках. Бесплатный онлайн.
Позвольте мне начать с него
(void *)
Я нашел эту книгу очень полезной Защищенная программная поваренная книга для C и С++: Рецепты для криптографии, аутентификации, проверки ввода и многое другое
В нем есть много примеров как для Linux (posix), так и для Windows в отличие от предыдущего Написание защищенного кода, второго издания.
Стандартные стандарты кодирования С++ для истребителей Aircraft это хороший старт, хотя он применяется в основном к надежности, а не к безопасности.
Стандарт кодирования SEI CERT С++ специально разработан для решения всех проблем безопасности. CERT означает команду Computer Emergency Response Team, которая является экспертной группой, которая занимается инцидентами компьютерной безопасности.