주요정보통신기반 시설 가이드

SQL 인젝션이란?

만보만보잠만보 2024. 3. 17. 14:42

SQL 인젝션

(SQL Injection)

 

개념

비정상적인 SQL 쿼리를 조합하여 실행하는 취약점입니다.

 

발생 원인

사용자 입력 값에 적절한 검증절차를 거치지 않아 발생하는 취약점입니다

 

위험한 이유

공격자가 비정상적인 SQL 쿼리문을 삽입할 경우 데이터가 유출될 뿐만 아니라 데이터 수정이나 삭제를 하여 웹 사이트를 손상시킬 수 있습니다.

 

조치 방법

- SQL 쿼리에 사용되는 문자열의 유효성을 검증하는 로직을 구현합니다.

- 아래 사진과 같은 특수문자를 사용자 입력 값으로 지정 금지합니다. (아래 문자들은 해당 DB에 따라 달라질 수 있습니다.)

주통에 있는 필터링 대상 목록

- Dynamic SQL 구문 사용을 지양하며 파라미터에 문자열 검사를 필수로 적용합니다.

- 시스템에서 제공하는 에러 메시지 및 DBMS에서 제공하는 에러 코드가 노출되지 않도록 예외처리합니다.

- 웹 방화벽에 인젝션 공격 관련 룰셋을 적용합니다.

 

추가 정보

Dynamic SQL : 프로그램 실행 중에 SQL 문장을 동적으로 생성하고 실행하는 기술입니다.

가장 흔한 방법으로는 사용자 입력 값에 'or 1=1#을 넣는 방법이 있습니다.

SQL Injection의 종류로는 SQL Injection, Blind SQL Injection, Union SQL Injection, NoSQL Injection등이 있습니다.

'주요정보통신기반 시설 가이드' 카테고리의 다른 글

XPath 인젝션이란?  (0) 2024.03.17
SSI 인젝션이란?  (0) 2024.03.17
운영체제 명령 실행 공격이란?  (0) 2024.03.17
LDAP 인젝션이란?  (0) 2024.03.17
포맷 스트링이란?  (0) 2024.03.17