최근 ASP 프로그램(SQL 인젝션 취약점이 있음)을 수정하면서 관련 예방 방법을 인터넷에서 많이 찾아냈으나 그 어느 것도 만족스럽지 못하여 인터넷에서 일부 방법을 종합적으로 개선하여 이 글을 작성하게 되었습니다. 참고용으로 ASP 기능을 사용하세요.
다음은 인용문입니다:
함수 SafeRequest(ParaName)
희미한 파라값
ParaValue=요청(ParaName)
IsNumeric(ParaValue) = True이면
SafeRequest=ParaValue
종료 기능
elseIf Instr(LCase(ParaValue),"select ") > 0 또는 Instr(LCase(ParaValue),"insert ") > 0 또는 Instr(LCase(ParaValue),"delete from") > 0 또는 Instr(LCase(ParaValue) ,"count(") > 0 또는 Instr(LCase(ParaValue),"drop table") > 0 또는 Instr(LCase(ParaValue),"update ") > 0 또는 Instr(LCase(ParaValue),"truncate ") > 0 또는 Instr(LCase(ParaValue),"asc(") > 0 또는 Instr(LCase(ParaValue),"mid(") > 0 또는 Instr(LCase(ParaValue),"char(") > 0 또는 Instr(LCase (ParaValue),"xp_cmdshell") > 0 또는 Instr(LCase(ParaValue),"exec master") > 0 또는 Instr(LCase(ParaValue),"net localgroup Administrators") > 0 또는 Instr(LCase(ParaValue)," 그리고 ") > 0 또는 Instr(LCase(ParaValue),"net user") > 0 또는 Instr(LCase(ParaValue)," 또는 ") > 0
응답.쓰기 "<script 언어='javascript'>"
Response.Write "alert('잘못된 요청!'); 'SQL 주입 공격 프롬프트 메시지가 발견되었습니다.
Response.Write "location.href='http://blog.downcodes.com/';" 'SQL 주입 공격 리디렉션 URL이 발견되었습니다.
응답."<스크립트>" 쓰기
응답.끝
또 다른
SafeRequest=ParaValue
종료 조건
End 기능은
요청을 SafeRequest 기능으로 대체합니다.