A injeção de SQL foi executada pelos chamados mestres hackers desses níveis, e descobriu-se que a maioria das intrusões de hackers agora são baseadas na injeção de SQL. Ei, quem facilita o início? Comece a dizer e se Escreva um programa anti-injeção SQL geral. As solicitações HTTP gerais nada mais são do que get e post, então, desde que filtremos todos os caracteres ilegais na postagem ou informações de parâmetro na solicitação get no arquivo, podemos. julgue implementando a filtragem de informações de solicitação http. Ele está sujeito a ataque de injeção de SQL?
A solicitação get passada pelo IIS para asp.dll está na forma de uma string. Quando os dados são passados para Request.QueryString, o analisador asp analisará as informações de Request.QueryString e então separará o conteúdo de cada array de acordo com. "&" Os dados são interceptados da seguinte forma:
Primeiro, definimos que a solicitação não pode conter os seguintes caracteres:
'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate |char|declarar
cada Os caracteres são separados por "|", e então determinamos o Request.QueryString O código específico é o seguinte:
dim sql_injdata.
SQL_injdata = "'|e|exec|inserir|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = divisão(SQL_Injdata,"|")
Se Request.QueryString<>"" Então
Para cada SQL_Get em Request.QueryString
Para SQL_Data = 0 para Ubound (SQL_inj)
se instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Então
Response.Write "<Script Language=****>alert('World Movie Alliance SQL Universal Anti-injection System Prompt ↓nn Por favor, não inclua caracteres ilegais nos parâmetros e tente injetar!'); history.back(- 1)</ Roteiro>"
Resposta.fim
terminar se
próximo
Próximo
End If
Desta forma, implementamos a interceptação de injeção de solicitações get, mas também precisamos filtrar solicitações post, então temos que continuar a considerar request.form, que também existe na forma de um array. faça outro julgamento de loop. O código é o seguinte:
If Request.Form<>"" Then
Para cada Sql_Post em Request.Form
Para SQL_Data = 0 para Ubound (SQL_inj)
se instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Então
Response.Write "<Script Language=****>alert('World Movie Alliance SQL avisos do sistema anti-injeção universal ↓nn Por favor, não inclua caracteres ilegais nos parâmetros e tente injetar! nnHTTP://www.521movie. com ');história.back(-1)</Script>"
Resposta.fim
terminar se
próximo
próximo
end se
OK, você terminou. Implementamos a interceptação de informações para solicitações get e post. Você só precisa fazer referência a esta página antes de abrir um arquivo de banco de dados como conn.asp. Você pode continuar a desenvolver seu programa sem se preocupar se será atacado novamente por injeção de SQL. Não é?