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:
Primeiramente, definimos que os seguintes caracteres não podem ser incluídos na solicitação:
|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare
Cada caractere é separado por "|", e então determinamos o Request.QueryString obtido. 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
Terminar se
Desta forma, implementamos a interceptação de injeção de solicitações get, mas ainda precisamos filtrar as solicitações post, então temos que continuar considerando request.form, que também existe na forma de um array. Só precisamos fazer outro. julgamento em 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 Universal Anti-injection System Prompt ↓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
terminar 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 é?