버퍼 오버플로우 공격을 막는 가장 중요한 방법으로 프로그래밍 시 권장하는 함수가 아닌 것은?
1
strncat()
오답 이유오답 보기입니다. ‘strncat()’은(는) 이 문항의 판단 기준인 ‘strcpy()’과 구별해야 합니다. 취약점이 발생하는 위치·입력 처리·세션 흐름 또는 대응 기법이 정답 조건과 다릅니다.
2
fgets()
오답 이유오답 보기입니다. ‘fgets()’은(는) 이 문항의 판단 기준인 ‘strcpy()’과 구별해야 합니다. 취약점이 발생하는 위치·입력 처리·세션 흐름 또는 대응 기법이 정답 조건과 다릅니다.
3
snprintf()
오답 이유오답 보기입니다. ‘snprintf()’은(는) 이 문항의 판단 기준인 ‘strcpy()’과 구별해야 합니다. 취약점이 발생하는 위치·입력 처리·세션 흐름 또는 대응 기법이 정답 조건과 다릅니다.
4
strcpy()
정답 근거정답 보기입니다. strcpy() 함수는 복사할 대상의 버퍼 크기를 확인하지 않고 데이터를 복사하기 때문에 버퍼 오버플로우 취약점을 유발하는 대표적인 위험 함수입니다. 반면 strncat(), fgets(), snprintf()는 복사할 길이를 제한할 수 있어 안전한 함수로 권장됩니다.
ANSWER & EXPLANATION
정답 4번
strcpy() 함수는 복사할 대상의 버퍼 크기를 확인하지 않고 데이터를 복사하기 때문에 버퍼 오버플로우 취약점을 유발하는 대표적인 위험 함수입니다. 반면 strncat(), fgets(), snprintf()는 복사할 길이를 제한할 수 있어 안전한 함수로 권장됩니다.
RELATED CONCEPT
어플리케이션 보안 핵심개념
정답 용어만 외우지 말고 각 보기의 적용 대상·기능·전제 조건을 비교하세요. 같은 분야 기출을 묶어서 풀면 표현이 달라져도 판단 기준을 유지할 수 있습니다.