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 scanf
zurü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 |