<%
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