Red de conocimiento informático - Problemas con los teléfonos móviles - Problema de inyección SQL

Problema de inyección SQL

Programa anti-inyección ASP universal. Elimina los riesgos de inyección SQL. Mejora la seguridad del sitio web.

Las solicitudes http generales no son más que obtener y publicar, siempre y cuando filtremos todas las publicaciones en el. archivo o La información de parámetros en la solicitud de obtención solo necesita caracteres ilegales, por lo que podemos determinar si está sujeto a un ataque de inyección SQL implementando el filtrado de información de solicitud http.

La solicitud de obtención pasada por IIS a asp.dll tiene la forma de una cadena. Cuando los datos se pasan a Request.QueryString, el analizador asp analizará la información de Request.QueryString y luego la basará. en "amp;", separe los datos en cada matriz, por lo que la interceptación de get es la siguiente:

Primero, definimos que los siguientes caracteres no se pueden incluir en la solicitud

'|y|exec|insert|select|delete|update |count|*||chr|mid|master|truncate|char|declare|xp_cmdshell

Cada carácter está separado por "|", y luego determinamos Request.QueryString

El código específico es el siguiente

Código de programa:

Dim sql_injdata

SQL_injdata = "'| y|exec|insertar|seleccionar|eliminar|actualizar|contar| *||chr|mid|master|truncate|char|declare|xp_cmdshell"

SQL_inj = split(SQL_Injdata, "|")

Si Request.QueryStringlt;gt;"" Entonces

Para cada SQL_Get en Request.QueryString

Para SQL_Data=0 a Ubound(SQL_inj)

Si InStr(Request.QueryString(SQL_Get), Sql_Inj( Sql_DATA))gt; 0 Entonces

Response.Write("lt;script language=""javascript"" type=""text/javascript ""gt; alert(""¡La información enviada contiene caracteres ilegales! "");lt;/scriptgt;")

Response.End()

End If

Siguiente

Siguiente

End If

De esta manera, hemos implementado la interceptación de inyección de solicitudes de obtención, pero también necesitamos filtrar las publicaciones. solicitudes, por lo que debemos continuar considerando request.form, que también es una matriz. El formulario existe, solo necesitamos hacer otro juicio de bucle.

El código es el siguiente

Código de programa:

Si Request.Formlt;gt;"" Entonces

Para cada SQL_Get en Request.Form

Para SQL_Data=0 a Ubound(SQL_inj)

Si InStr(Request.QueryString(SQL_Get), Sql_Inj(Sql_DATA))>0 Entonces

Response.Write("lt ;script language=""javascript"" type=""text/javascript""gt; alert(""¡La información enviada contiene caracteres ilegales!""); . End()

Finalizar si

Siguiente

Siguiente

Finalizar si

Obtener y interceptar publicación. Para solicitar información, solo necesita consultar esta página antes de abrir un archivo de base de datos como conn.asp.

Ejemplo:

Opción explícita

'//Se inicia la interceptación de inyección SQL

Dim SQL_injdata, SQL_inj, SQL_Get, SQL_Data

SQL_injdata = "'|y|exec|insertar|seleccionar|eliminar|actualizar|contar|*||chr|mid|master|truncate|char|declarar"

SQL_inj = Split(SQL_Injdata , "|")

If Request.QueryStringlt;gt;"" Entonces llame a KillSQLinj(Request.QueryString)'//obtener modo de intercepción

If Request.Formlt;gt;" "Luego llame a KillSQLinj(Request.Form)'//intercepción en modo de publicación

Sub KillSQLinj(fashion)

para cada SQL_Get In fashion

para SQL_Data=0 A Ubound(SQL_inj)

Si InStr(Request.QueryString(SQL_Get), Sql_Inj(Sql_DATA))>0 Entonces

Response.Write("lt;script language="" javascript "" type=""text/javascript""gt;alert(""¡La información enviada contiene caracteres ilegales!"");lt;/scriptgt;")

Response.End()

Finalizar si

Siguiente

Siguiente

End Sub

'// Finaliza la intercepción de inyección SQL

Si hay algún problema con el contenido de la respuesta, o si cree que es inapropiado, envíeme un mensaje de Baidu y agregue la URL de esta página al contenido del mensaje. .