Partager via


Avertissement C28726

Utilisation de l’API interdite : « *function-name » n’est pas sécurisé et a été marqué déprécié.

Cet avertissement indique qu’une fonction qui a été interdite est utilisée et qu’elle a un remplacement plus robuste ou plus sécurisé. Cette erreur spécifique indique que la fonction interdite a le potentiel de dépassement d’une mémoire tampon.

Remarques

Vous trouverez la liste de toutes les fonctions interdites couvertes par cette erreur, la raison pour laquelle elles sont interdites et les remplacements recommandés dans l’exemple suivant.

Nom de l’analyse du code : BANNED_API_USAGEL2

Exemple

Le code suivant génère cet avertissement :

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

Cela est dû à l’utilisation de la fonction scanfnon sécurisée . scanf n’impose aucune limite à la taille des données copiées dans la mémoire tampon. Pour résoudre ce problème, nous pouvons utiliser scanf_s, le remplacement plus sûr de cette fonction. scanf_s exige que le développeur spécifie le nombre d’octets destinés à être copiés. scanf_s garantit uniquement que de nombreux octets sont copiés. Par exemple, le code suivant est plus sûr :

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

Fonctions interdites

REMARQUE : Cette liste est activement mise à jour et améliorée

API interdite Remplacement(s) Justification / Notes
_itoa _itoa_s Ne se termine pas par null
_i64toa _i64toa_s Ne se termine pas par null
_i64tow _i64tow_s Ne se termine pas par 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 Détection d’erreur limitée
sscanf sscanf_s Détection d’erreur limitée
wmemcpy wmemcpy_s Détection d’erreur limitée
wnsprintfW
wscanf wscanf_s