Quando i programmatori di scrivere codice per gestire l'input dell'utente testuale , che l'input spesso si muove attraverso un buffer o variabile. Buffer " superamento " si verifica quando il programmatore non crea un buffer di dimensioni sufficienti per gestire l'input dell'utente . L'ingresso non si ferma quando il buffer si ferma. Piuttosto , il programma salva il testo in memoria subito dopo il buffer , potenzialmente sovrascrivere i dati del programma fondamentali . Stringa di buffer overflow più spesso si verificano quando i programmatori non controllano l'input dell'utente in modo corretto.
Controllo Boundaries
Ingresso utente può spesso estendersi oltre i confini di un allineamento a causa del cattivo confine controllo . In particolare in C , dove le stringhe sono rappresentate come array di caratteri , l'inserimento e la manipolazione di stringhe in questi array può diventare difficile. E 'possibile valori di indice di matrice sbagliare e sovrascrivere posizioni in memoria al di fuori della matrice . Da sempre incluso il codice che controlla i confini della matrice per garantire che essi non siano sovrascritti , il programmatore può limitare l'accesso stringa alla matrice.
Usando grandi buffer
Nei linguaggi di più alto livello , come C # o Java , il programmatore può utilizzare gli oggetti di input specifici che contengono grandi buffer . BufferedReader di Java è un buon esempio di questo . L'utente può creare l'oggetto con un grande stronzo o un bastone con la sua grande dimensione del buffer predefinito per gestire l'input . L'oggetto quindi gestisce testo nel buffer. In linguaggi di basso livello come C , il programmatore probabilmente array di caratteri di uso . In tal caso , il programmatore deve assicurarsi che l' array di caratteri ricezione di dati rimane sufficiente per gestire qualsiasi formato di dati immaginabile .
Usare le funzioni sicura
Per quanto riguarda l'input dell'utente va , il linguaggio di programmazione C impiega funzioni diverse per le varie operazioni di input . Non tutte queste opzioni sono sicuri . Per esempio, la Ottiene funzione non controlla l'input dell'utente a tutti, e vi permetterà di passare qualche cosa nel programma. La funzione strcpy non effettuerà alcun controllo limiti. Invece , le altre funzioni di sicurezza dovrebbero essere utilizzati , come ad esempio le fgets o funzioni strncpy .
Programmazione © www.354353.com