저장프로시저 추척을 권장하나 수정할게 많으면 차후 차근차근 수정 하고 임시로 아래와 같이 한다.
다음 파일을 include
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
<% Dim key Dim strFilter Dim rgFilter Dim nFilter Dim incone Dim resultbadstring ' 본 스크립트가 삽입된 페이지에 전달되는 모든 GET, POST 데이터에 대한 필터링 검사 ' GET 데이터 값 for each key in request.QueryString resultbadstring = badstring(trim(Request.QueryString(key))) if resultbadstring = "error" then response.write " Internet Explorer로 요청한 웹 페이지에 연결할 수 없습니다." response.end 'response.redirect("about:blank") end if next ' POST 데이터 값 for each key in Request.form resultbadstring = badstring(trim(Request.form(key)) ) if resultbadstring = "error" then response.write " Internet Explorer로 요청한 웹 페이지에 연결할 수 없습니다." response.end end if next Function badstring(inboundstring) inboundstring = LCase(inboundstring) strFilter = " --,exec,xp_,sp_,1=1,DECLARE,VARCHAR(,@variable,sYsDaTaBaSeS,sElEcT" ' 필터링할 문자열 strFilter = LCase(strFilter) '소문자로 비교 rgFilter = Split(strFilter ,",") ' 문자열을 배열로 변경 If ( IsArray(rgFilter) ) Then nFilter = UBound(rgFilter) ' 배열에 개수 end if for incone = 0 to nFilter if InStr(1,inboundstring,rgFilter(incone)) > 0 Then badstring ="error" exit for ' for문 탈출 else badstring = "ok" end if next End Function |