용어와 정의
영문 또는 원어: SQL injection
한글명: SQL 삽입 공격
SQL 삽입 공격은 신뢰하지 않는 입력이 데이터베이스 질의의 명령 구조로 해석되게 하는 취약점 악용입니다.
정확한 의미와 원리
프로그램이 데이터 값과 SQL 구조를 안전하게 분리하지 못할 때 발생할 수 있습니다. 데이터 열람뿐 아니라 변경이나 다른 영향으로 이어질 수 있어 서버 권한도 중요합니다.
쉽게 이해하는 사용 예시
검색어가 단순 값으로 처리되는지, 미리 정한 질의와 매개변수로 전달되는지를 확인하는 것은 방어 설계의 한 예입니다.
종류와 관련 개념의 차이
문자열 조합과 매개변수화된 질의는 입력의 처리 구조가 다릅니다. 저장 프로시저나 ORM을 사용해도 내부에서 안전하지 않게 질의를 만들면 문제가 남을 수 있습니다.
적용 조건과 오해하기 쉬운 점
특수문자 몇 개를 금지하거나 WAF만 추가하는 것으로 해결을 단정하지 않습니다. 질의 구조의 분리, 허용 목록과 데이터베이스 최소 권한을 함께 적용합니다.
관련 용어와 글
함께 이해할 기준 개념
함께 비교할 용어
- CSRF 사이트 간 요청 위조
- SSRF 서버 측 요청 위조
- CORS 교차 출처 리소스 공유
- CSP 콘텐츠 보안 정책
- Clickjacking 클릭재킹
- Session cookie 세션 쿠키
- Reflected XSS 반사형 XSS
- Stored XSS 저장형 XSS
- DOM-based XSS DOM 기반 XSS
- CSRF token 요청 위조 방지 토큰
- CSP nonce CSP 실행 허용 난수
- HttpOnly 스크립트 접근을 제한하는 쿠키 속성
- Secure cookie attribute 보호 연결 전송 쿠키 속성
- SameSite 사이트 간 쿠키 전송 조건