Escreva um programa de anti-injeção ASP geral para selecionar o blog de Ph4Studio
Escreva um programa anti-injeção ASP comum para palavras-chave
Fonte
A injeção de SQL foi realizada por aqueles chamados hackers no nível dos iniciantes. Descobri que a maioria das intrusões de hackers agora é baseada na injeção de SQL.
, Infelizmente, quem facilitou isso? Ok, não vou mais falar bobagem, agora estou começando a dizer se escrever um programa geral de anti-injeção SQL
As solicitações gerais de HTTP nada mais são do que obter e postar, então, desde que filtremos todos os post ou obtemos informações de parâmetro de solicitação no arquivo
Os caracteres ilegais são suficientes, para que possamos usar o filtro de informações de solicitação HTTP para determinar se ele está sujeito a ataques de injeção de SQL.
O IIS passou para asp.dll está na forma de uma string, quando passada para solicitar.
O ASP Parser analisará as informações da solicitação.QueryString e depois dividirá os dados em cada matriz de acordo com "&"
Então seja interceptado da seguinte maneira
Primeiro, definimos que a solicitação não pode conter os seguintes caracteres
'| e | EXEC | inserir | Selecionar | Excluir | Atualizar | contagem |*|%| Chr | MID | MASTER | TRUNCATE | CHAR | Declare
Cada personagem é separado por "|" e depois julgamos o pedido.QueryString
O código específico é o seguinte
dimsql_injdata
Sql_injdata = "'| e | Exec | insert | selecione | delete | atualização | contagem |*|%| chr | mid | mestre | truncate | char | declarar"
Sql_inj = split (sql_injdata, "|")
IfRequest.QueryString <> "" então
Foreachsql_getinRequest.QueryString
Forsql_data = 0TOUBOUND (SQL_INJ)
ifinstr (request.QueryString (sql_get), sql_inj (sql_data))> 0hen
Response.Write "<ScriptLanguage = ****> alert ('Tianxia Movie Alliance SQL System universal anti-injeção Pronhos ↓ NnnPlorase Não inclua caracteres ilegais nos parâmetros e tente injetar!'); History.back (-1) </cript>"
Resposta.END
endif
próximo
Próximo
Endif
Dessa forma, implementamos a interceptação da injeção da solicitação GET, mas também precisamos filtrar a solicitação de postagem, para que continuemos a considerar a solicitação.form, que também existe na forma de uma matriz, só precisamos entrar no loop para fazer julgamentos novamente. O código é o seguinte
IfRequest.form <> "" então
Foreachsql_postinRequest.form
Forsql_data = 0TOUBOUND (SQL_INJ)
ifinstr (request.form (sql_post), sql_inj (sql_data))> 0hen
Response.Write "<ScriptLanguage = ****> Alert ('Tianxia Movie Alliance SQL System universal anti-injeção Proot ↓ NnnPlouse não inclui caracteres ilegais nos parâmetros e tente injetar! NNHTTP: //www.521Movie.com'); History.back (--1) </script>"
Resposta.END
endif
próximo
próximo
endif
OK, o trabalho é feito, implementamos a interceptação de informações de solicitações de get e postagem. Você só precisa fazer referência a esta página antes de abrir o arquivo de banco de dados como Conn.asp. Continue desenvolvendo seu programa com confiança, não há necessidade de considerar se ele ainda será atacado pela injeção de SQL. Não é?