Scegliere un linguaggio di programmazione che è dotato di controlli per impedire la scrittura dei dati al di fuori dei confini di un buffer . Linguaggi come C e C + + mancanza built-in controllo di confine . L' . NET Framework e forza ambienti Java il controllo dei limiti . I linguaggi interpretati hanno protezione da buffer overflow .
2
Seleziona librerie e le funzioni che hanno la gestione del buffer e il controllo dei limiti . Le funzioni C di uso comune " strcpy " , " scanf " e " diventa " sono particolarmente vulnerabili a buffer overflow . Alternative più sicure sono le funzioni " strncat " " strncpy " e , che scarta i dati che superano la lunghezza specificata. La cura deve ancora essere presa per specificare la dimensione del buffer corretta . Un esempio di un'alternativa più sicura per la libreria stringa C è il libero scaricabile " The Better String Biblioteca ".
3
installazione eseguibile protezione spazio add-on per aiutare a prevenire i buffer overflow . Codice di tentare di eseguire dallo stack o heap causare un'eccezione. Protezione spazio eseguibile utilizza il " No Execute" ( NX bit) per marcare le regioni della memoria come non eseguibile. Esempi di pacchetti eseguibili protezione spazio per Unix includono OpenWall , Exec Shield e Pax . Componenti aggiuntivi per Windows includono StackDefender e BufferShield . Dal momento che Windows XP Service Pack 2 , Windows offre Execution Prevention ( DEP ) , che fornisce una certa protezione buffer overflow .
Programmazione © www.354353.com