[Injection] SQL 인젝션 분석 및 방어
Injection
Kim
2026-04-09
1. 공격 원리
사용자 입력값이 SQL 쿼리의 일부로 해석되어, 공격자가 데이터베이스를 조작하거나 비정상적인 데이터를 조회하는 취약점입니다.
SELECT * FROM users WHERE id = 'admin'
' OR '1'='1' AND pw = '...';
2. 주요 피해 유형
- 데이터 유출: 회원 정보, 비밀번호 등 민감 데이터 무단 조회
- 인증 우회: 비밀번호를 몰라도 관리자 계정으로 로그인 성공
- 데이터 파괴: DB 테이블 삭제(Drop) 또는 임의 데이터 수정
3. 방어 방법
- PreparedStatement(매개변수화된 쿼리)를 사용하여 입력값 분리
- 사용자 입력값에 대한 화이트리스트 기반 필터링 적용
- DB 계정의 권한을 최소한으로 설정하여 피해 범위 최소화