scanf 보안 경고
C4996 'scanf': This function or variable may be unsafe.
Consider using scanf_s instead.
To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
>>
C4996 'scanf': 이 함수 또는 변수는 안전하지 않을 수 있습니다.
대신 scanf_s를 사용하는 것이 좋습니다.
지원 중단을 비활성화하려면 _CRT_SECURE_NO_WARNINGS를 사용하세요.
자세한 내용은 온라인 도움말을 참조하십시오.
scanf()가 visual studio에서 보안문제로 depricated 상태이기 때문이다.
depricated
네이버 사전 - 중요도가 떨어져 더 이상 사용되지 않고 앞으로는 사라지게 될 상태
어떤 기능이 아직까지 사용되고는 있지만, 신기능이 나왔기 때문에 조만간 사라지게 될 상태
BOF Buffer OverFlow 취약한 함수
길이 검사 또는 경계 검사가 정상적으로 수행되지 않았을 때 발생
이 경우 프로그래머가 지정한 메모리 영역뿐만이 아닌 인접한 영역의 내용까지도 침범
C/C++ 기록되는 데이터가 지정된 주소의 범위 안에 있는지 검사하지 않기 때문
해결방법
1. scanf_s
scanf( ) 대신 scanf_s( )을 사용하면 해결됨
하지만 해당 오류는 Visual Studio 에서만 발생하는 오류
scanf_s( )는 Visual Studio에서만 사용되는 비표준 함수 이므로
다른 편집기에서는 컴파일 오류가 발생한다.
2. #define _CRT_SECURE_NO_WARNINGS
코드의 맨 앞줄에 #inclue <> 위에 정의 하면 사라진다.
3. #pragma warning(disable:4996)
위와 동일 하다.
4. SDL(Security Development Lifecycle) 검사 끄기
소스파일 우 클릭 -> 구성 속성 -> C/C++ -> SDL검사(아니요)
'C > C' 카테고리의 다른 글
static (0) | 2022.09.29 |
---|---|
C char 그리고 wchar_t 문자, 문자열 (0) | 2022.09.28 |
묵시적 형 변환, 명시적 형 변환 (0) | 2022.09.25 |
연산자 01 (0) | 2022.09.22 |
변수 진수 값 저장 (0) | 2022.09.22 |