정보처리기사 실기보안보안 공격과 대응난이도 5DESCRIPTIVE

정보처리기사 실기 보안 공격과 대응 기출문제 #186

문제

**SQL 인젝션(SQL Injection)**의 공격 원리를 설명하고, 이를 방어하기 위한 대응 방안을 3가지 이상 서술하시오.

정답

SQL 인젝션은 웹 애플리케이션에서 사용자 입력값을 적절히 검증하지 않아, 공격자가 입력 필드에 악의적인 SQL 구문을 삽입하여 데이터베이스를 비정상적으로 조작하는 공격이다. 대응 방안으로는 첫째, 매개변수화된 쿼리(Prepared Statement)를 사용하여 사용자 입력을 SQL 구문과 분리한다. 둘째, 입력값 검증(Validation)을 수행하여 특수문자나 SQL 예약어를 필터링한다. 셋째, 웹 방화벽(WAF)을 도입하여 비정상적인 SQL 패턴을 탐지·차단한다. 넷째, 최소 권한 원칙을 적용하여 데이터베이스 접근 권한을 제한한다.

SQL 구문 삽입입력값 검증 미흡Prepared Statement입력값 검증WAF최소 권한

해설

SQL 인젝션은 OWASP Top 10에 포함되는 대표적 웹 취약점이다. 예를 들어 로그인 폼에서 ' OR 1=1 --을 입력하면 WHERE 조건이 항상 참이 되어 인증을 우회할 수 있다. Prepared Statement는 SQL 구문 구조를 미리 컴파일한 뒤 매개변수만 바인딩하므로 삽입된 SQL이 구문으로 해석되지 않는다. ORM 프레임워크 사용, 에러 메시지 노출 방지, 데이터베이스 계정의 최소 권한 부여도 중요한 방어 수단이다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.