sqli defense

SQL Injection 대응 우선순위

SQL Injection은 입력값이 데이터가 아니라 쿼리 구조로 해석되는 문제이므로 구조 분리가 핵심입니다.

Separate

쿼리와 값을 분리

Prepared Statement로 SQL 구조와 사용자 입력을 분리합니다.

Validate

허용 형식만 통과

숫자, 길이, 목록 값처럼 기대한 입력만 처리합니다.

Limit

DB 권한 최소화

공격 성공 시 조회, 수정, 삭제 피해 범위를 줄입니다.

Observe

오류와 로그 관리

DB 오류 노출을 줄이고 의심 요청을 로그로 남깁니다.

문자열 필터링만으로는 우회 가능성이 있어 Prepared Statement가 우선이다.

DB 계정은 기능에 필요한 최소 권한만 가진다.

WAF는 보조 방어이며 코드 수정 대체물이 아니다.

SQL Injection 답안은 “원인: 직접 결합, 핵심 대응: Prepared Statement”를 중심에 둡니다.