Freigeben über


Warnung C28726

Gesperrte API-Verwendung: "*function-name" ist unsicher und wurde als veraltet markiert.

Diese Warnung gibt an, dass eine Funktion verwendet wird, die gesperrt wurde und einen robusteren oder sichereren Ersatz aufweist. Dieser spezifische Fehler gibt an, dass die gesperrte Funktion einen Puffer möglicherweise überläuft.

Hinweise

Eine Liste aller gesperrten Funktionen, die von diesem Fehler betroffen sind, warum sie gesperrt sind, und empfohlenen Ersetzungen finden Sie nach dem folgenden Beispiel.

Name der Codeanalyse: BANNED_API_USAGEL2

Beispiel

Der folgende Code generiert diese Warnung:

void example_func() 
{ 
    char user_input[10]; 
    scanf(“%s”, input); // scanf is banned for security purposes 
} 

Dies ist auf die Verwendung der unsicheren Funktion scanfzurückzuführen. scanf schränkt die Größe der in den Puffer kopierten Daten ein. Um dieses Problem zu beheben, können wir verwenden scanf_s, die sicherere Ersetzung dieser Funktion. scanf_s erfordert, dass der Entwickler angibt, wie viele Bytes kopiert werden sollen. scanf_s stellt nur sicher, dass viele Bytes kopiert werden. Der folgende Code ist beispielsweise sicherer:

void example_func() 
{ 
    char user_input[10]; 
    scanf_s(“%9s”, input, sizeof(input)); // 9 bytes leaves room for the \0 byte at the end  
} 

Gesperrte Funktionen

HINWEIS: Diese Liste wird aktiv aktualisiert und verbessert.

Gesperrte API Ersetzung(en) Begründung/ Hinweise
_itoa _itoa_s Beendet nicht NULL.
_i64toa _i64toa_s Beendet nicht NULL.
_i64tow _i64tow_s Beendet nicht NULL.
_mbccpy _mbccpy_s
_mbscpy _mbscpy_s
_mbsnbcpy _mbsnbcpy_s
_mbsnbcat _mbsnbcat_s
_mbsncat _mbsncat_s
_mbsncpy _mbsncpy_s
_mbstok _mbstok_s
_snscanf _snscanf_s
_snwscanf _snwscanf_s
_ui64toa ui64toa_s
_ui64tow _ui64tow_s
_ultoa _ultoa_s
CharToOemA
CharToOemBuffA
CharToOemBuffW
CharToOemW
OemToCharA
OemToCharBuffA
OemToCharBuffW
scanf scanf_s Eingeschränkte Fehlererkennung
sscanf sscanf_s Eingeschränkte Fehlererkennung
wmemcpy wmemcpy_s Eingeschränkte Fehlererkennung
wnsprintfW
wscanf wscanf_s