모두CBT

다음 중 버퍼 오버플로우(Buffer Overflow)에 취약한 C언어… | [국회직 9급 정보보호론] 17년 1회차 기출문제 상세 페이지

1[국회직 9급 정보보호론] 17년 1회차
다음 중 버퍼 오버플로우(Buffer Overflow)에 취약한 C언어 함수로 옳지 않은 것은?
1
int scanf (const char *format, ...);
2
char *gets (char *buf);
3
int strcmp (const char *str1, const char *str2);
4
char *realpath (const char *path, char *resolved_path);
5
char *strcat (char *dest, const char *src);
해설

버퍼 오버플로에 취약한 함수가 아닌 것은 strcmp이다.

strcmp는 두 문자열을 읽어 비교만 할 뿐 버퍼에 데이터를 쓰지 않으므로, 쓰기 범위를 넘기는 오버플로가 일어나지 않는다.

  • scanf: %s 형식처럼 길이 제한 없이 입력을 받으면 버퍼를 넘칠 수 있다.
  • gets: 입력 길이를 전혀 검사하지 않는 대표적인 위험 함수다.
  • realpath: 변환 경로를 resolved_path 버퍼에 쓰므로 버퍼 크기가 부족하면 넘칠 수 있다.
  • strcat: 대상 버퍼의 남은 크기를 확인하지 않고 문자열을 이어 붙인다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[국회직 9급 정보보호론] 17년 1회차 20문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요국회직 9급 정보보호론 기출문제 암기장 전체 보기