SQL Injection 취약점이란?
- 데이터베이스와 연동된 웹 애플리케이션에서 공격자가 입력 폼 또는 URL 입력란에 SQL 구문을 삽입하여 DB를 조작할 수 있는 취약점
- 입력란에 입력된 데이터의 유효성을 검증하지 않아 발생되는 보안 취약점이다.
- 쉬운 공격 난이도에 비해 공격이 성공할 경우 상당히 큰 피해를 낼 수 있는 취약점으로 파급력이 큰 취약점이라 볼 수 있다.
- 공격에 사용되는 방식에 따라 아래와 같이 분류된다.
- Generic SQL Injection
- Blind SQL Injection
- Union SQL Injection
- Error based SQL Injection
- Stored Procedure SQL Injection
SQL Injection 취약점 대응 방안
- 입력 값에 대한 검증 로직을 구현하여 사전에 정의된 특수 문자들이 입력되지 않도록 조치한다.
- Prepared Statement 구문을 사용하여 개발을 함으로써 입력 값에 들어가는 데이터는 단순히 문자열로 처리되도록 한다.
- 불필요한 데이터베이스 에러 메시지가 사용자에게 노출이 되지 않도록 한다.
- 웹 방화벽 (WAF, Web Application Firewall)를 사용하여 비정상적인 데이터가 전송이 될 경우 차단하도록 한다.
'CERT > 웹 취약점' 카테고리의 다른 글
[웹 취약점]에러처리 취약점의 정의 및 대응 방안 (0) | 2023.05.06 |
---|---|
[웹 취약점]권한인증 취약점의 정의 및 대응 방안 (0) | 2023.05.06 |
[웹 취약점] Cross-Site Scripting(XSS) 취약점의 정의 및 대응 방안 (0) | 2023.05.06 |
웹 쉘(Web Shell)의 정의 및 피해 사례 및 실습 (0) | 2023.04.29 |
[웹 취약점]공개용 웹 게시판 취약점의 정의 및 대응 방안 (0) | 2023.04.15 |