닷넷 프레임워크 2.0 이상에서는, HttpModule 을 등록하여 사용하는 방법에 대한 것이고, 닷넷 1.1 기반에서는 응용프로그램 시작 지점에 체크 루틴을 넣는 방법 입니다.

public static string[] blackList =
 {"--",";--",";","/*","*/","@@","@",
    "char","nchar","varchar","nvarchar",
    "alter","begin","cast","create","cursor","declare","delete","drop",
    "end","exec","execute",
    "fetch","insert","kill","open",
    "select", "sys","sysobjects","syscolumns",
    "table","update"};

Sql Injection 이 가능한 문자열을 배열로 지정을 해놓고, 웹서버에 요청되는 내용을 위 내용으로 필터링을 하는 것입니다.

특히 요즘에는,. 쿼리문을 바이너리 문자열로 인코딩하여 실제 SQL Server 에서는 실행시 정상적인 쿼리문으로 실행되도록 Cast 형변환,. 즉 Declare 와 Cast 를 많이 쓰는것 같습니다.

사이트의 개별 코드와는 상관없이 사이트 전역에 영향을 주는 방법이긴 합니다만, Form 값으로 들어오는 부분도 필터링을 하므로,. 보통 게시판을 글 내용에 있는 것도 필터가 될수도 있겠네요.

요즘,. Sql Injection 이 극성인데,..
조금이나마 도움이 될수도 있을것 같습니다.^^
2010/11/06 06:11 2010/11/06 06:11

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다