Standsning bufferoverløb hjælper med at forhindre programmet ned og hackere i at frigive skadelig kode, der kan kompromittere en computer -system. En buffer overflow er, når et program skriver data til en buffer , almindeligvis en streng eller et array , og overstiger bufferen længde, skrive kode ind i den tilstødende hukommelse. Forebyggelse bufferoverløb opnås ved hjælp af programmering biblioteker , der understøtter buffer beskyttelse at have eksekverbare plads beskyttelse og vælge programmeringssprog har kontrol af grænser . Instruktioner
1
Vælg et programmeringssprog, der har indbygget kontrol for at forhindre data skriftligt uden for grænserne for en buffer . Sprog såsom C og C + + mangel indbygget grænse kontrol . Den . NET Framework og Java -miljøer kraft kontrol af grænser. Fortolket sprog har beskyttelse mod bufferoverløb .
2
Select biblioteker og funktioner , der har buffer ledelse og kontrol af grænser . De almindeligt anvendte C-funktioner " strcpy ", " scanf " og " får " er særligt sårbare over for buffer overflow. Sikrere alternativer kan nævnes " strncpy " og " strncat " funktioner , som kassere data overstiger den angivne længde. Man skal stadig tages for at angive den korrekte buffer størrelse . Et eksempel på et mere sikkert alternativ til C strengen Biblioteket er det gratis downloades "The Better String Library".
3
Installer eksekverbar space beskyttelse add-ons for at forebygge bufferoverløb . Kode forsøger at udføre fra stablen eller dynge forårsage en undtagelse . Eksekverbare space beskyttelse udnytter "Ingen execute" ( NX bit) for at markere områder af hukommelsen som ikke- eksekverbare . Eksempler på eksekverbare plads beskyttelse pakker til Unix nævnes Openwall , Exec Shield og Pax. Tilføjelser til Windows omfatter StackDefender og BufferShield . Da Windows XP Service Pack 2 , tilbyder Windows Data Execution Prevention (DEP ) , giver nogle buffer overflow beskyttelse.