2011-01-24 9 views
10

Estoy buscando un registro completo de las prácticas de codificación segura en C++. Como no he encontrado una lista que ya exista aquí, también podríamos convertirla en una wiki de la comunidad, para futuras referencias. Busco soluciones a los problemas de seguridad como la pila y montón basado desbordamientos de búfer y underflow, desbordamientos de enteros y underflow, ataques de formato de cadena, puntero nulo eliminación de referencias, heap/ataques de inspección de memoria, etc ..Prácticas de codificación de C++ segura

NB: Además de las prácticas de codificación También vale la pena mencionar las bibliotecas seguras que defienden contra este tipo de ataques.

LE: Según lo sugerido por MSalters en los comentarios, esta pregunta se ha dividido en dos preguntas separadas, una para C++ y otra para C. Ver también Secure C coding practices.

+5

Si tiene la intención de hacer esa lista, le recomiendo hacer dos. C y C++ necesitan listas completamente diferentes. No puede recomendar "Use' std :: string' en lugar de 'char *' "para los programadores C. – MSalters

+0

Tal vez libros de aquí: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – rve

+0

@MSalters que es un buen punto, aunque es algo difícil de hacer ahora que tener respuestas y comentarios en marcha. ¿Alguna idea de cómo puedo dividirlos de la manera correcta, sin perder la actividad actual? – Shinnok

Respuesta

3

El libro Writing Secure Code es muy bueno para explicar los problemas de seguridad y cómo evitarlos. El libro ha estado fuera por un tiempo, pero la mayoría de los temas tratados siguen siendo relevantes.

1

Permítanme lo saque fuera

  • Evitar asignada dinámicamente memoria mediante malloc
  • (relacionado) utiliza fijo matriz de tamaño siempre que sea posible, o de hecho en C++ evitar matrices de estilo C cuando prácticos
  • evitar el uso de (void *)
3

Herb Sutter "Exceptional C++" and "C++ Coding Standards". Inestimable.

Marshall Cline C++ faq. Te contaré todo sobre las trampas comunes. Gratis en línea.

1

El SEI CERT C++ Coding Standard está especialmente desarrollado para cubrir todo tipo de problemas de seguridad. CERT significa Computer Emergency Response Team, que es un grupo de expertos que maneja incidentes de seguridad informática.

Cuestiones relacionadas