I modsætning til andre sprog , C og C + + ikke kontrollere størrelsen på input , før du skriver det ind i en buffer. Hvis indgangen er større end den tildelte plads i bufferen , er input skrevet over andre data i programmet stakken . Ud over at forårsage dit program til at opføre sig uregelmæssigt , kan bufferoverløb give en hacker mulighed for at gå ned dit program , få adgang til private data eller endda tage kontrol over en maskine. Undgå usikre C + + funktioner er et af de skridt til at forhindre bufferoverløb i dit program. String Funktioner
Usikre funktioner, der håndterer strenge inkluderer strcpy () , strcat () , sprintf () , vsprintf () , og får (). Disse funktioner udføre operationer på snor variabler gemmes som arrays af tegn i C + +. De funktioner, læse en snor fra en kilde - såsom bruger-input - kopiere eller sammenkæde en snor til at danne en ny streng . Hvis du ikke kontrollere størrelsen af den nye snor , før du skriver det ind i hukommelsen , kan det medføre en buffer overflow .
Scanning funktioner
Usikre filscanning funktioner omfatter scanf ( ) , fscanf ( ) , sscanf ( ) , vscanf ( ) vsscanf ( ) og vfscanf ( ) . Scanningsfunktioner læse data fra bruger input , en fil eller andre kilder, og skrive det til en formateret streng. Hvis det scannede data er større end den plads der er afsat til formateringsplugin streng, vil en buffer overflow opstår.
Microsoft funktioner
Usikre funktioner i Microsoft biblioteker indeholder wcscpy ( ) , _tcscpy ( ) , _mbscpy ( ) , wcscat ( ) , _tcscat ( ) , _mbscat ( ) og CopyMemory ( ) . Disse funktioner er primært kopiere og sammenkæde funktioner, der bruger Microsoft -specifikke objekter , snarere end strenge eller fil data.
Andre funktioner
Andre usikre C + + funktioner inkluderer realpath () , getopt () , getpass () , streadd () , strecpy () og strtrns ().