카테고리

분류 전체보기 (509)
문학 (128)
찬양 콘티(Continuity) (80)
Business as heritage (6)
IT . Web (148)
Photo (127)
etc. (20)
Total404,612
Today23
Yesterday30






블로그 이미지

소 잃고 외양간 고친다고.. 최근 중국에 계신 IT 관련 누군가에 의해..
제가 관리하는 사이트가 SQL Injection 공격을 수차례 당했습니다. :(

그래서 손쉽게 전체 페이지에 간단하나마 필터를 하려면 어떻게 할까 하다가,
매우 기초적인 예제가 떠올랐습니다. :)

샘플은 vbscript (ASP)

For Each vItem In Request.QueryString
if InStr(Request.QueryString(vItem), ";") > 0 or InStr(lcase(Request.QueryString(vItem)), "sysobject") > 0 or InStr(lcase(Request.QueryString(vItem)), "declare") > 0 or InStr(lcase(Request.QueryString(vItem)), "varchar(") > 0 then '// for check 
response.write "Fuck, the regulation!" '// watch The Legend of 1900 ^^;
response.end
end if
next

사실 페이지에 get, post로 넘겨지는 값을 통해서 유해한(?) SQL 문장을 삽입하는 공격법인지라, 하나하나 막는 건 부담스럽습니다.

사용언어가 무엇이든, 저렇게 한바퀴 돌면서 "너의 파라미터 이름이 뭔지는 궁금하지 않아, 내용이 위험한지만 궁금해~" 라고 다정하게 속삭여주면 최소한의 방어는 이루어지게 됩니다.

저는 위의 구문을 데이터베이스 라이브러리를 로드하는 포함페이지 상단에 넣어 두었습니다.

물론 한바퀴 도느라 response time은 미세하게 늘어나겠지만, 그래도 안전하게 보험드는 게 좋겠죠?
Posted by One of Remnants

댓글을 달아 주세요

달력

« » 2020.4
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

최근에 받은 트랙백

글 보관함