In tegenstelling tot andere talen , C en C + + hebben de grootte van de input niet controleren voordat het geschreven wordt in een buffer . Als de ingang groter is dan de ruimte in de buffer toegewezen , wordt de invoer overschreven andere gegevens in het programma stack . Naast het veroorzaken van uw programma om vreemd te gedragen , kan buffer overflows een aanvaller je programma crashen , toegang tot prive gegevens te krijgen of zelfs de controle van een machine te nemen . Het vermijden van onveilige C + + functies is een van de stappen om het voorkomen van buffer overflows in uw programma . String Functions Onveilige functies dat strings verwerken bevatten strcpy ( ) , strcat ( ) , sprintf ( ) , vsprintf ( ) , en krijgt ( ) . Deze functies bewerkingen op string variabelen opgeslagen als matrices karakters in C + + . De functies leest een string uit een bron - zoals de invoer van de gebruiker - kopiëren of samenvoegen van een string naar een nieuwe reeks te vormen . Als u niet de grootte van de nieuwe snaar controleren voordat het geschreven wordt in het geheugen , kan het een buffer overflow veroorzaken . Scanfuncties Onveilige bestand scanfuncties omvatten scanf ( ) , fscanf ( ) , sscanf ( ) , vscanf ( ) vsscanf ( ) en vfscanf ( ) . Scanfuncties gegevens lezen van input van de gebruiker , een bestand of andere bronnen en schrijven naar een geformatteerde string. Als de gescande gegevens groter is dan de ruimte die is toegewezen voor de formatter- snaar , zal een buffer overflow optreden . Microsoft Functies Onveilige functies in Microsoft bibliotheken bevatten boven wcscpy ( ) , _tcscpy ( ) , _mbscpy ( ) , wcscat ( ) , _tcscat ( ) , _mbscat ( ) en CopyMemory ( ) . Deze functies zijn vooral kopiëren en samenvoegen functies die Microsoft - specifieke objecten te gebruiken , in plaats van snaren of bestandsgegevens . Andere functies Andere onveilige C + + functies bevatten realpath ( ) , getopt ( ) , GETPASS ( ) , streadd ( ) , strecpy ( ) en strtrns ( ) .
|