반응형
Visual Studio는 기본적으로 취약함 함수를 사용할 수 없습니다.
&는 특정한 변수의 주소를 의미하며, 특정한 메모리 주소에 접근하여 데이터를 수정하기 위함입니다.
메모리 주소에 얼마만큼의 크기의 데이터를 입력해야 할지 알아야 합니다.
즉, scanf()는 특정 사이즈를 지정하지 않기 때문에 Overflow 오류가 생길 수 있기 때문에
안전하지 않은 취약점이 존재합니다.
아래 3가지 방식 중 선택하면 됩니다.
전처리기 매크로 정의 (코드 추가)
코드 제일 위에 매크로 정의 코드를 추가하여 간단하게 처리할 수 있습니다.
* #include <stdio.h> 보다 위에 위치해야 합니다.
#pragma warning(disable:4996)
혹은 아래 코드도 활용 가능
#define _CRT_SECURE_NO_WARNINGS
전체적인 형태
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int a = 0;
scanf("%d", &a);
printf("%d", a);
return 0;
}
전처리기 매크로 정의 (설정)
- 동일한 프로젝트에서 코드를 여러번 작업하는 경우에는 프로젝트 설정을 하는 것이 편합니다.
① [프로젝트] - [속성]
② [C/C++] - [전처리기] - [전처리기 정의]
;_CRT_SECURE_NO_WARNINGS
* 앞에 세미콜론(;)도 같이 포함해주어야 합니다.
scanf_s() 사용
『val』변수에 4Byte(int 크기)만큼만 저장해서 이용합니다.
#include <stdio.h>
int main(){
int val = 0;
scanf_s("%d", &val, sizeof(val));
printf("%d\n", val);
}
* 매번 코드를 저렇게 치는 것은 번거롭기 때문에 추천하지 않습니다.
반응형
'설치 및 환경 설정' 카테고리의 다른 글
[Eclipse] 이클립스 다크 테마 설정 (0) | 2021.03.02 |
---|---|
zoom 활용하기 (0) | 2021.02.24 |
[MySQL] 부팅 시 자동 실행 설정 (0) | 2021.02.24 |
[VS Code] WEB 관련 Extension (0) | 2021.02.24 |
[VS Code] Git 관련 Extension (0) | 2021.02.23 |
댓글