다음을 통해 공유


경고 C28726

금지된 API 사용: '*function-name'은 안전하지 않으며 더 이상 사용되지 않는 것으로 표시되었습니다.

이 경고는 금지되었으며 보다 강력하거나 안전한 대체 기능이 있는 함수가 사용되고 있음을 나타냅니다. 이 특정 오류는 금지된 함수가 버퍼를 오버플로할 가능성이 있음을 나타냅니다.

설명

이 오류가 적용되는 모든 금지 함수 목록, 금지된 이유 및 권장되는 대체 함수는 다음 예제 다음에 찾을 수 있습니다.

코드 분석 이름: BANNED_API_USAGEL2

예제

다음 코드는 이 경고를 생성합니다.

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

이는 안전하지 않은 함수 scanf를 사용하기 때문입니다. scanf 는 버퍼에 복사된 데이터의 크기에 제한을 두지 않습니다. 이 문제를 해결하기 위해 를 사용하여 scanf_s이 함수를 더 안전하게 대체할 수 있습니다. scanf_s 을 사용하려면 개발자가 복사할 바이트 수를 지정해야 합니다. scanf_s 는 많은 바이트만 복사되도록 합니다. 예를 들어 다음 코드는 더 안전합니다.

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

금지된 함수

참고: 이 목록은 적극적으로 업데이트되고 개선되고 있습니다.

금지된 API 교체(들) 근거/참고 사항
_itoa _itoa_s NULL을 종료하지 않음
_i64toa _i64toa_s NULL을 종료하지 않음
_i64tow _i64tow_s 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 제한된 오류 검색
sscanf sscanf_s 제한된 오류 검색
wmemcpy wmemcpy_s 제한된 오류 검색
wnsprintfW
wscanf wscanf_s