SQL Injection은 SQL의 쿼리/Command를 웹페이지를 통해 삽입하는 하나의 해킹 기법을 의미합니다. 웹페이지는 기본적으로 사용자들의 패러미터(아이디, 패스워드, 생년월일, 전화번호 등)을 입력받아 데이터베이스에 대한 정보를 조회,삽입,수정,삭제 등의 작업을 하게 됩니다.
바로 이러한 기본적인 SQL 쿼리문을 통해 조작된 사용자명과 패스워드를 보내는 것이 가능하고, 정보를 변조하거나 삭제하는 등의 작업이 가능해지는 것입니다.
서버상에 80포트만 오픈되어 있기 때문에 안전할 것이라고 생각하는 것은 잘못된 생각입니다. 웹 페이지는 80 포트를 통해 구동되기 때문이고, 웹페이지를 통한 해킹이 가능하기 때문이죠. SQL Injection을 솔루션으로 해결하는 방법은 웹 방화벽이 있습니다. 미리 등록된 페이지 및 작업을 제외한 어떠한 작업도 해킹시도로 간주하여 모두 블로킹 시켜버리기 때문이죠. 물론 비용이 발행합니다.
오늘은 기본적으로 할 수 있는 몇가지만 설명하려고 합니다.
Single quote('), double quote("), slash(/), back slash(\), semi colon(;), NULL, carriage return, new line 등의 모든 특수문자를 필터링 해버립니다.
- 사용자로부터의 입력, URL을 통한 패러미터, 쿠키값 등
- 낮은 권한을 사용하여 SQL Server를 시작하고 구동합니다
- 사용하지 않는 Stored Procedure는 제거합니다.
. "Xp_cmdshell, Xp_startmail, Xp_sendmail, Sp_makewebtask"
감사합니다.
IT Pro2008. 5. 16. 11:36