Im Gegensatz zu anderen Sprachen , C und C + + nicht überprüfen Sie die Größe des Eingangs vor dem Schreiben in einen Puffer . Wenn das Eingangssignal größer ist als der Raum, in dem Puffer zugeordnet ist, wird das Eingangssignal vor anderen Daten in dem Programm -Stack geschrieben . Zusätzlich zu verursachen Ihr Programm fehlerhaft verhalten , können Buffer Overflows die ein Angreifer in Ihr Programm abstürzen , Zugang zu privaten Daten oder sogar die Kontrolle über eine Maschine. Vermeiden unsichere C + +-Funktionen ist eine der Maßnahmen, um zu verhindern Buffer Overflows in Ihrem Programm. String-Funktionen
Unsichere Funktionen , die Strings verarbeiten gehören strcpy ( ) , strcat () , sprintf ( ) , vsprintf () und gets () . Diese Funktionen führen Vorgänge auf String-Variablen gespeichert, wie Zeichen-Arrays in C + +. Die Funktionen lesen eine Zeichenfolge aus einer Hand - wie zB Benutzereingaben - Kopie oder verketten einen String in eine neue Zeichenfolge zu bilden. Wenn Sie das Kontrollkästchen nicht die Größe des neuen String vor dem Schreiben in den Speicher , kann es zu einem Pufferüberlauf führen .
Scanfunktionen
Unsichere Datei-Scan Funktionen gehören scanf () , fscanf () , sscanf () , vscanf () vsscanf () und vfscanf (). Scanfunktionen Lesen von Daten aus Benutzereingaben, einer Datei oder aus anderen Quellen und schreiben Sie es auf eine formatierte Zeichenfolge. Wenn die gescannten Daten größer ist als der Raum für die Formatierer String zugewiesen wird ein Pufferüberlauf auftreten .
Microsoft Funktionen
Unsichere Funktionen in Microsoft -Bibliotheken enthalten wcscpy () , _tcscpy () , _mbscpy () , wcscat () , _tcscat () , _mbscat () und CopyMemory (). Diese Funktionen sind vor allem kopieren und verketten Funktionen, die Microsoft -spezifische Objekte verwenden , anstatt Strings oder File-Daten .
Weitere Funktionen
andere unsichere C + +-Funktionen gehören realpath () , getopt () , getpass () , streadd () , strecpy () und strtrns ().