¿Cómo solucionar el problema de desbordamiento del buffer? ``¡Por favor, dame algún consejo! ¡Gracias!
Cuando ingresan datos demasiado largos al búfer, los datos sobrantes se escribirán en otros búferes, que pueden contener datos, punteros a la siguiente instrucción u otros programas que se hayan sobrescrito o dañado. Se puede ver que el desbordamiento de una pequeña parte de datos o un conjunto de instrucciones puede provocar que el programa o el sistema operativo falle.
Los desbordamientos del búfer se producen por errores de programación. Se produce un desbordamiento del búfer si el búfer se llena y el programa no verifica los límites del búfer o deja de recibir datos. La verificación vinculada al búfer se considera una sobrecarga infructuosa. Los recursos informáticos insuficientes o la memoria insuficiente son las razones por las que los programadores no escriben declaraciones de verificación vinculadas al búfer. Sin embargo, la Ley de Moore ha eliminado la base por esta razón, pero la mayoría de los usuarios tienen entre diez o incluso veinte códigos de programa. hace años todavía se ejecuta en las principales aplicaciones.
La razón de la proliferación de desbordamientos de búfer es la naturaleza de los programas de código abierto. Algunos lenguajes de programación son inmunes a los desbordamientos del búfer; por ejemplo, Perl cambia automáticamente el tamaño de las matrices de bytes y Ada95 comprueba y previene los desbordamientos del búfer. Pero el lenguaje C ampliamente utilizado no tiene ningún mecanismo de detección. El estándar C tiene muchas funciones que copian y agregan cadenas, lo que dificulta la verificación de límites en el estándar C. C es un poco mejor, pero todavía tiene problemas de desbordamiento del búfer. En circunstancias normales, no tiene sentido sobrescribir datos en otras áreas de datos y, como máximo, provocará errores en la aplicación, pero si los datos de entrada están diseñados cuidadosamente por un "hacker" o virus, y los datos que sobrescriben el búfer son exactamente los mismos. resultado de un código de programa de intrusión de virus o "hackers", el desbordamiento del búfer se utiliza como verificación de límites una vez que se sobrescriben los bytes adicionales. Una vez que los bytes adicionales se compilan y ejecutan, un "hacker" o virus puede hacer lo que quiera y hacerse con el control del sistema.
El uso de una o más unidades adicionales para almacenar copias de datos se denomina redundancia de datos. Por ejemplo, la duplicación es una tecnología de redundancia de datos.