다음 C 코드의 보안 문제와 수정으로 옳은 것은? ```c printf(user_input); ```
user_input은 외부에서 받은 NUL 종료 문자열이다.
입력 내용에 % 같은 포맷 지정 문자가 포함될 수 있다.
정답 4번
printf의 첫 인수는 출력 형식을 제어한다. 외부 입력을 여기에 넣으면 %x·%s·%n 등이 변환 지시자로 처리되어 잘못된 메모리 접근이나 정보 노출을 유발할 수 있다. 고정 형식인 "%s" 뒤에 user_input을 전달하면 입력 안의 %도 데이터로 출력한다. 출력 길이를 제한하는 snprintf 역시 포맷 인수를 분리해야 한다.
콘텐츠 정보
출제범위 기반 실전 연습을 위해 정처LAB이 독립 제작했습니다. 표시 연도는 학습 범위의 맥락이며 특정 시행 회차의 출제문항이나 복원 원문을 뜻하지 않습니다.
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-09-04