“Conocimientos Programación>Lenguajes De Programación

¿Qué es la saturación de búfer de cadena Handling

2011/4/23
¿ Agujeros de seguridad en el software pueden venir en más formas que los programadores pueden imaginar. Uno de estos ataques es la saturación del búfer , cuando un atacante proporciona más información que un programa puede manejar. En particular, los escenarios de programación, como la programación del sistema o programación C bajo nivel, buffers de cadenas son vulnerables a la explotación. Ciertas técnicas de manejo de cadenas se pueden emplear para prevenir estos ataques . Estas técnicas incluyen el monitoreo del tamaño de la cadena , comprobar los límites de búfer y el uso de funciones de manejo seguras . Cuerda saturaciones de búfer

Cuando los programadores escriben código para controlar la entrada del usuario textual, que la entrada a menudo se mueve a través de un tampón o variable. Buffer " rebasamiento " ocurre cuando el programador no crea un buffer de tamaño suficiente para manejar la entrada del usuario . La entrada no se detiene cuando el buffer se detiene. Más bien , el programa guarda el texto en la memoria inmediatamente después de la memoria intermedia , que podría sobrescribir datos cruciales del programa . Búfer de cadena se desborda con mayor frecuencia se producen cuando los programadores no comprobar correctamente la entrada del usuario .
Comprobación de límites

entrada de usuario a menudo puede extenderse más allá de los límites de una matriz por el mal límite de cheques. Particularmente en C, donde las cadenas se representan como conjuntos de caracteres , insertar y manipular cadenas en estas matrices puede llegar a ser complicado. Es posible que los valores de índice de matriz calcular mal y sobrescribir ubicaciones en la memoria fuera de la formación . Por siempre incluyendo el código que comprueba los límites de la matriz para asegurar que no se sobrescribe , el programador puede limitar el acceso a la cadena de la matriz.
Con grandes Buffers

lenguajes de alto nivel, como C # o Java, el programador puede utilizar los objetos de entrada específicos que contienen grandes cantidades de memoria . BufferedReader de Java es un buen ejemplo de esto. El usuario puede crear este objeto con una gran desgraciado o un palo con su gran tamaño de búfer predeterminado para manejar la entrada . El objeto se encarga de texto en el búfer . En lenguajes de bajo nivel como C , más probable es que las matrices de caracteres de uso del programador. En ese caso, el programador debe asegurarse de que la matriz de caracteres recepción de datos sigue siendo lo suficientemente grande como para manejar cualquier tamaño de datos posibles.
Utilizar las funciones de Secure

En cuanto a la entrada del usuario va, el lenguaje de programación C emplea diferentes funciones para diferentes operaciones de entrada . No todas estas opciones son seguras. Por ejemplo, el Obtiene función no comprueba la entrada del usuario en absoluto, y permitirá que pase nada en el programa. La función strcpy no realizará ninguna comprobación de límites. En cambio, otras funciones de seguridad deben ser empleados , como los fgets o funciones strncpy .

Lenguajes De Programación
Aplicación Estrategias de Desarrollo Prototipos
Ventajas y desventajas de la máquina de nivel de idioma
Cómo dividir una cadena en dos variables de PowerShell
Cómo Dividir la cadena en dos
Cómo combinar dos columnas de fecha en Oracle
¿Cuál es la complejidad de tiempo de una búsqueda en profundidad
Cómo hacer Compilación Quartus Faster
Cómo matar a un espacio en blanco en la fusión fría
Conocimientos Informáticos © http://www.ordenador.online