Recentemente, devido à modificação de um programa ASP (que possui uma vulnerabilidade de injeção de SQL), encontrei muitos métodos de prevenção relacionados na Internet, mas nenhum deles era satisfatório. Então, melhorei exaustivamente alguns dos métodos na Internet e escrevi isto. Função ASP.
Aqui está uma citação:
Função SafeRequest(ParaName)
Dim ParaValor
ParaValue=Solicitação(ParaNome)
se IsNumeric(ParaValue) = Verdadeiro então
SafeRequest=ParaValor
função de saída
elseIf Instr(LCase(ParaValue),"select ") > 0 ou Instr(LCase(ParaValue),"insert ") > 0 ou Instr(LCase(ParaValue),"delete from") > 0 ou Instr(LCase(ParaValue) ,"count() > 0 ou Instr(LCase(ParaValue),"drop table") > 0 ou Instr(LCase(ParaValue),"update ") > 0 ou Instr(LCase(ParaValue),"truncate ") > 0 ou Instr(LCase(ParaValue),"asc() > 0 ou Instr(LCase(ParaValue),"mid(") > 0 ou Instr(LCase(ParaValue),"char(") > 0 ou Instr(LCase (ParaValue),"xp_cmdshell") > 0 ou Instr(LCase(ParaValue),"exec master") > 0 ou Instr(LCase(ParaValue),"administradores de grupo local de rede") > 0 ou Instr(LCase(ParaValue)," e ") > 0 ou Instr(LCase(ParaValue),"net user") > 0 ou Instr(LCase(ParaValue)," ou ") > 0 então
Response.Write "<linguagem de script='javascript'>"
Response.Write "alert('Solicitação ilegal!'); 'Mensagem de prompt de ataque de injeção SQL encontrada
Response.Write "location.href='http://blog.downcodes.com/'; 'URL de redirecionamento de ataque de injeção SQL encontrado
Resposta.Escreva "<script>"
Resposta.fim
outro
SafeRequest=ParaValor
Terminar se
A função End
substitui sua solicitação pela função SafeRequest