? Säkerhetshål i programvara kan komma i fler former än programmerare kan föreställa . En av dessa attacker är buffertöverskridning , när en angripare ger mer information än ett program kan hantera . I synnerhet programmering scenarier , såsom systemets programmering eller låg - nivå C -programmering , sträng buffertar är sårbara för exploatering . Vissa sträng hantering tekniker kan användas för att förhindra dessa attacker . Dessa tekniker inkluderar övervakning strängen storlek , kontroll buffert gränser och använda säkra sträng - hantering funktioner . String buffertöverskridningar
När programmerare skriver kod för att hantera textuell indata , flyttar den ingången ofta genom en buffert eller variabel . Buffert " överskridande " uppstår när programmeraren inte skapar en buffert av tillräcklig storlek för att hantera indata från användaren . Ingången stannar inte när bufferten stannar . Snarare , sparar programmet texten i minnet direkt efter bufferten , kanske skriva över viktiga programdata . String buffertspill inträffar oftast när programmerare inte kontrollera indata ordentligt . Addera Kontroll Boundaries
input
Användaren kan ofta sträcka sig utanför gränserna för en matris på grund av dålig gräns kontroll . Särskilt i C , där strängar representeras som matriser av tecken , sätta in och manipulera strängar i dessa matriser kan bli knepigt . Det är möjligt att indexera missräkna matrisvärdena och skriva över platser i minnet utanför arrayen . Genom att alltid inklusive kod som kontrollerar gränserna för gruppen att se till att de inte är över, kan programmeraren begränsa strängen tillgång till arrayen .
Använda stora buffertar
högre nivå språk , som C # eller Java , kan programmeraren använda specifika input objekt som innehåller stora buffertar . Javas BufferedReader är ett bra exempel på detta . Användaren kan skapa detta objekt med ett stort jäkla eller stick med sin stora standard buffer storlek att hantera insättningar . Objektet hanterar sedan text i bufferten. I lägre nivå språk som C , programmeraren kommer sannolikt använda teckenkoder matriser . I så fall , måste programmeraren att karaktären array emot data fortfarande stor nog att hantera alla tänkbara uppgifter storlek .
Använd Secure funktioner
Såvitt indata går , använder programmeringsspråket C olika funktioner för olika insatsvaror verksamhet . Inte alla av dessa alternativ är säkra . Till exempel blir funktionen inte kontrollera användarens input alls , och kommer att ge allt för att passera in i programmet . Den strcpy funktionen kommer inte att utföra någon gränskontroll . Istället bör andra säkra funktioner användas , såsom fgets eller strncpy funktioner .