1
Elige un lenguaje de programación que se ha incorporado en los controles para evitar la escritura de datos fuera de los límites de un buffer. Lenguajes como C y C + + falta una función de comprobación de límites. El . NET Framework y Java fuerza ambientes comprobación de límites. Los lenguajes interpretados tienen protección contra desbordamientos de búfer .
2
Seleccione librerías y funciones que tienen gestión del buffer y la comprobación de límites . Las funciones de C de uso general " strcpy ", " scanf " y "recibe " son especialmente vulnerables a desbordamientos de búfer . Alternativas más seguras son las funciones " strncat " " strncpy " y , lo que descarta los datos exceden la longitud especificada. Cuidado aún debe ser objeto de especificar el tamaño de búfer correcta. Un ejemplo de una alternativa más segura a la biblioteca de cadena C es el descargable " La Mejor Cadena Library . " Libre
3
instalación ejecutable protección espacio complementos para ayudar a prevenir desbordamientos de buffer . Código intentar ejecutar de la pila o montón provocar una excepción . Protección del espacio ejecutable utiliza el " no ejecutar " ( NX bit) para marcar las regiones de la memoria como no ejecutables . Ejemplos de paquetes de protección del espacio ejecutables de Unix incluyen OpenWall , Exec Shield y Pax . Complementos para Windows incluyen StackDefender y BufferShield . Puesto que Windows XP Service Pack 2 , Windows ofrece la Prevención de ejecución de datos ( DEP ) , que proporciona cierta protección contra desbordamiento de búfer.