SQL 인젝션 공격이 발생할 가능성이 가장 높은 코드 구조는? | [국회직 9급 정보보호론] 25년 1회차 기출문제 상세 페이지
1[국회직 9급 정보보호론] 25년 1회차
SQL 인젝션 공격이 발생할 가능성이 가장 높은 코드 구조는?
1
사용자 입력을 서버에서 세션으로 저장
2
사용자 입력을 파일로 저장한 후 비동기 처리
3
사용자 입력을 인코딩 후 정적 HTML로 출력
4
쿼리문 실행 전 입력값을 모두 소문자로 변환
5
사용자 입력값을 문자열로 직접 연결해 SQL 쿼리를 구성
해설
SQL 인젝션 위험이 가장 큰 구조는 사용자 입력값을 문자열로 직접 연결해 쿼리를 만드는 방식이다.
입력값이 데이터가 아니라 SQL 구문의 일부로 해석되어 공격자가 쿼리의 조건과 구조를 바꿀 수 있기 때문이다. 대응책은 Prepared Statement처럼 구문과 값을 분리하는 것이다.
- 입력을 세션에 저장: 그 자체로는 SQL 쿼리를 구성하지 않는다.
- 입력을 파일로 저장한 후 비동기 처리: 저장과 처리 방식의 문제로 SQL 구문 조작과 직접 관련이 없다.
- 인코딩 후 정적 HTML 출력: 출력 처리로서 쿼리 실행 경로가 아니다.
- 입력값 소문자 변환: 대소문자만 바뀔 뿐 근본 대책은 아니지만, 문자열 연결만큼 직접적인 취약 구조로 꼽히지는 않는다.
오류나 개정된 내용이 보이면 알려주세요