[SQL Injection] 대응방안에 대하여
대응방안 개요
웹 서비스 제공 환경을 고려하면 다음과 같이 다양한 단계에서 대응이 가능합니다 .
각 단계 별로 대응이 가능하지만 가장 효율적인 방법은 원인 제거가 가능한 코드레벨의 시큐어 코딩이라고 할 수 있습니다 .
각 대응방안 별 차이점을 요약하면 다음과 같습니다 .
구분 | 설명 |
미들웨어 | 현재 사용하고 있는 미들웨어는 PHP 이며 PHP의 보안기능을 이용하면 SQL 인젝션 대응에 부분적인 효과가 있습니다. |
코드레벨 | 소스코드를 수정하여 대응하는 시큐어 코딩 방법으로 취약점의 원인이 되는 보안 약점의 근본적인 조치 및 제거가 가능합니다. |
DBMS | 데이터 베이스에서 제공하는 기능을 이용하여 취약점을 대응하는 방법입니다. 주로 저장 프로시저를 이용하며, 검증된 안전한 함수를 생성하여 DB 질의에 활용합니다. |
보안장비 | 보안장비를 활용하여 대응하는 방법이며 가장 신속하게 대응이 가능하지만 근본적인 원인이 되는 에플리케이션의 취약점은 그대로 존재하기 때문에 공격 징후 탐지 등의 보안관제와 시큐어 코딩 전 긴급대응에 유용한 방식입니다. |
각 대응 방안 별로 다음과 같은 해결 방안이 있습니다 .
구분 | 설명 |
미들웨어 | 1. Apache 서버의 Custom Error Response 활성화 2. PHP의 magic_quotes_gpc 설정 활성화 |
코드레벨 | 1. 화이트리스트 키워드 필터링 2. 데이터 유형 검사 3. 프리페어드 스테이트먼트 적용 |
DBMS | 1. 저장 프로시저 사용 2. 스키마 객체 접근권한 제거 3. DB 유저의 권한 통제 |
보안장비 | 공격 키워드 필터링 |
댓글
댓글 쓰기