Desbordamiento de búfer debido a un tipo de datos incorrecto

5

Estoy leyendo la página OWASP sobre el desbordamiento de búfer. Menciona:

se puede evitar el desbordamiento de búfer usando lenguajes de programación de alto nivel que están fuertemente tipados y

el desarrollador debe validar la entrada para evitar que se procesen datos inesperados, como el tipo de datos incorrecto

¿Puede alguien dar un ejemplo cuando un tipo de datos incorrecto puede llevar a un desbordamiento de búfer?

    
pregunta Jake 11.06.2015 - 22:39
fuente

1 respuesta

4

Aquí hay algunos ejemplos de C / C ++:

  • Leer mucho en un espacio de memoria int (por ejemplo, con scanf).

    int i;
    scanf("%ld", &i);
    
  • Usar un flotante como un índice en un bucle for en lugar de una estructura de punto fijo, lo que posiblemente genere una iteración más o menos de la esperada.

    char *arr = new char[9];
    for(float j=1; j>0; j=j-0.1) { // will clobber 10 characters, not 9
        *arr++ = 'A';
    
  • copiar entre matrices con diferentes anchos de tipo

    float floatArr[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };
    char charArr[10];
    memcpy(charArr, floatArr, sizeof(float));
    
respondido por el Ari Trachtenberg 11.06.2015 - 23:01
fuente

Lea otras preguntas en las etiquetas