안녕하세요.
덕분에 많은 공부를 하고 있습니다.

한국보호진흥원에 사이트가 안전한지 보냈더니
답변이
취약점 원인 테스트 응답에 CSRF(Cross-Site Request Forgery) 시도가 성공적이었음을
입증하는 "WF_XSRF.html 파일에 대한 링크가 포함되었습니다.

파라메타 값을 loc=/main.asp →loc=%22%27%3E%3CIMG+SRC%3D%22%2FWF_XSRF.html%22%3E 으로
변경

권고 사항 유저 입력으로 부터 위험한 캐릭터들을 걸러내야 한다

이런식으로 왔습니다.
그래서 아래의 함수를 써서 하려는데요.

Function sqlFilter(search)
    Dim strSearch(5), strReplace(5), cnt, data
   
    'SQL Injection 특수문자 필터링
    '필수 필터링 문자 리스트
    strSearch(0)="'"
    strSearch(1)=""""
    strSearch(2)="\"
    strSearch(3)=null
    strSearch(4)="#"
    strSearch(5)="--"
    strSearch(6)=";"

    '변환될 필터 문자  
    strReplace(0)="''"
    strReplace(1)=""""""
    strReplace(2)="\\"
    strReplace(3)="\"&null
    strReplace(4)="\#"
    strReplace(5)="\--"
    strReplace(6)="\;"
   
    data = search
    For cnt = 0 to 6 '필터링 인덱스를 배열 크기와 맞춰준다.
        data = replace(data, LCASE(strSearch(cnt)), strReplace(cnt))
    Next

    sqlFilter = data
End Function

loc = Trim(sqlFilter(server.HTMLEncode(Request("loc"))))

이런식으로 사용을 하면
Microsoft VBScript 런타임 오류 error '800a0009'

첨자 사용이 잘못되었습니다.: '[number: 6]'

라는 에러가 떠서

배열 부분을
Dim strSearch(6), strReplace(6), cnt, data
이라 수정을 하면
Microsoft VBScript 런타임 오류 error '800a005e'

Null 값의 사용이 잘못되었습니다.: 'replace'

이라하여 
    'strSearch(3)=null
   'strReplace(3)="\"&null
위 2부분을 주석처리 하였습니다.

저런식으로 해도 위험한 캐릭터들은 다 걸러낼수 있는지요?
본론이 너무 길었습니다..^^

바쁘시겠지만 답변 부탁드립니다.