Stoppa buffertspill förhindrar program kraschar och hackare från att släppa skadlig kod som kan äventyra ett datorsystem . En buffer overflow är när ett program skriver data till en buffert , vanligen en sträng eller en array , och överstiger buffertens längd , skriva kod i den intilliggande minnet . Förhindra buffertspill uppnås genom att använda programmering bibliotek som stöder buffert skydd , med skydd körbar utrymme och välja programmeringsspråk som har gränskontroll . Instruktioner
1
Välj ett programmeringsspråk som har inbyggda kontroller för att förhindra data som skrivs utanför gränserna för en buffert . Språk som C och C + + saknar inbyggd gräns kontroll . Den . NET Framework och Java -miljöer kraft gränskontroll . Tolkade språk har skydd mot buffertspill .
2
Välj bibliotek och funktioner som har buffert förvaltning och gränskontroll . De vanligaste C-funktioner " strcpy " , " scanf " och " får " är särskilt sårbara för buffertspill . Säkrare alternativ inkluderar " strncpy " och " strncat " funktioner , som kasta uppgifter överskrider den angivna längden . Man måste ändå vidtas för att ange rätt buffer storlek . Ett exempel på ett säkrare alternativ till C strängen biblioteket är det gratis nedladdningsbara " The Better String bibliotek . " Addera 3
Install körbara space skydd tillägg för att förebygga buffertspill . Kod försöker köra från stacken eller högen orsakar ett undantag . Körbar space skydd utnyttjar " No Execute" ( NX bit ) för att markera områden av minnet som icke körbara . Exempel på körbara paket space skydd för Unix inkluderar OpenWall , Exec Shield och Pax . Add -ons Windows inkluderar StackDefender och BufferShield . Eftersom Windows XP Service Pack 2 , erbjuder Windows Data Execution Prevention ( DEP ) , som ger ett visst skydd buffer overflow .