¿Cómo prevenir un ataque de desbordamiento de búfer?

0
int main(void) {
    char buff[15];
    int pass = 0;
    printf("\n Enter the password : \n");
    gets(buff);
    if (strcmp(buff, "thegeekstuff")) {
        printf("\n Wrong Password \n");
    }
    else {
        printf("\n Correct Password \n");
        pass = 1;
    }
    if (pass) {
        /* Now Give root or admin rights to user*/
        printf("\n Root privileges given to the user \n");
    }
    return 0;
}

Sé que tengo que cambiar el pase para que no se pueda transmitir un valor que no sea cero, pero ¿cómo hago eso?

    
pregunta Octavian 06.12.2018 - 13:44
fuente

1 respuesta

0

Yo sugeriría usar

fgets(buff,15,stdin);

en lugar de get.

Pueden existir otras soluciones.

    
respondido por el T. Rode 06.12.2018 - 13:50
fuente

Lea otras preguntas en las etiquetas