728x90
반응형
외부 입력값에 쿼리 조작 문자열 포함 여부를 확인하지 않고 쿼리문(SQL) 생성 및 실행에 사용하는 경우 발생
→ 쿼리문의 구조와 의미가 변형되어서 실행
⇒ 권한 밖의 데이터에 접근이 가능
⇒ DBMS 서버의 제어권 탈취
⇒ 쿼리 실행 결과를 우회한 처리
[대응방안]
- 정적쿼리를 사용(실행) = PreparedStatement 객체를 사용 = 구조화된 쿼리 실행 = 파라미터화된 쿼리 실행
- 동적쿼리를 사용해야 하는 경우, 입력값 검증 후 사용 = 쿼리 조작 문자열 포함 여부를 확인 후 사용
- 애플리케이션에서 사용하는 DB 사용자의 권한을 최소로 부여 → Stored Procedure를 이용한 SQLi 공격 또는 Union-Based SQLi 공격을 완화
- 오류 메시지에 시스템 정보가 노출되지 않도록 통제 → Error-Based SQLi 공격을 완화
- ORM 프레임워크를 사용하는 경우, 외부 입력값을 쿼리맵에 바인딩할 때 # 기호를 이용
728x90
반응형
'보안 > 개발보안' 카테고리의 다른 글
운영체제 명령어 삽입 (0) | 2019.10.01 |
---|---|
크로스사이트 스크립트 (0) | 2019.10.01 |
경로조작 및 자원삽입 (0) | 2019.10.01 |
Command Injection 방어 코드 (0) | 2014.11.18 |
UNION based SQL Injection 실습 (0) | 2014.11.18 |
댓글