mecanismos de codificación de desarrollo pueden prevenir vulnerabilidades de desbordamiento de búfer . Enfoques sistemáticos pobres a problemas de seguridad o el uso inadecuado de herramientas y lenguajes de programación inseguridad son las causas de las vulnerabilidades. Los programadores deben dejar de usar lenguajes de programación como C inseguras para manejar la asignación de memoria , en lugar de utilizar nuevo lenguaje como C # y Java .
Valores Canarias y Protección
valores Canarias
puntero se también denominados cookies de pila , que es otro el hecho de impedir los ataques de desbordamiento de búfer . Estos protegen los datos de control de marcos de pila , como la dirección del remitente y el puntero de marco al insertar un valor en tiempo de compilación . Actúan como verificación de la integridad de los datos de control . Galletas PILA dejarán el programa al instante cuando los datos de control es manipulado .
Montón Endurecimiento
ataques de desbordamiento del montón
implementación también son explotables . Del mismo modo , los desarrolladores pueden utilizar variaciones canario dejar desbordamientos de memoria heap . Los valores canarias se encuentran en cada estructura de información de porción . Los programadores pueden aplicar los valores canario poniendo a ambos en el principio y el fin de la porción de información . Aplicaciones comparar los canarios en el comienzo de cada trama trozo con el valor al final para asegurarse de que se ha cambiado nada .
Pila no ejecutable y Heap
Usted puede prevenir código malicioso se ejecute en la memoria simplemente haciendo páginas de memoria no ejecutables . Esto se puede lograr a través de métodos de hardware o software . La mayoría de los nuevos sistemas operativos vienen con técnicas de página de memoria no ejecutables pre -instalados . Sistemas operativos más recientes de Microsoft, incluyendo Windows Vista , XP SP2 y Server SP1 , cuentan con las precauciones de desbordamiento de búfer .