Los llamados maestros piratas informáticos de esos niveles han jugado a la inyección SQL, y se descubre que la mayoría de las intrusiones de los piratas informáticos ahora se basan en la inyección SQL. Oye, ¿quién facilita el comienzo? Bien, no digamos tonterías, ahora. Comience a decir qué pasa si escribe un programa general anti-inyección de SQL. Las solicitudes http generales no son más que obtener y publicar, por lo que siempre que filtremos todos los caracteres ilegales en la publicación o la información de parámetros en la solicitud de obtención en el archivo, podemos. Juzgue implementando el filtrado de información de solicitud http. ¿Está sujeto a un ataque de inyección SQL?
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 separará el contenido de cada matriz según. "&" Los datos se interceptan de la siguiente manera:
Primero, definimos que la solicitud no puede contener los siguientes caracteres:
'|y|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate |char|declarar
cada Los caracteres están separados por "|", y luego determinamos el Request.QueryString obtenido. El código específico es el siguiente:
dim sql_injdata.
SQL_injdata = "'|y|exec|insertar|seleccionar|eliminar|actualizar|recuento|*|%|chr|mid|master|truncar|char|declarar"
SQL_inj = dividir(SQL_Injdata,"|")
Si Request.QueryString<>"" Entonces
Para cada SQL_Get In Request.QueryString
Para SQL_Data=0 a Ubound(SQL_inj)
si instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Entonces
Response.Write "<Script Language=****>alert('Mensaje del sistema antiinyección universal SQL de World Movie Alliance ↓nn ¡No incluya caracteres ilegales en los parámetros e intente inyectar!'); History.back(- 1)</ Guión>"
Respuesta.fin
terminar si
próximo
Próximo
End If
De esta manera, hemos implementado la interceptación por inyección de solicitudes de obtención, pero también necesitamos filtrar las solicitudes de publicación, por lo que debemos continuar considerando request.form, que también existe en forma de matriz. hacer otro juicio de bucle. El código es el siguiente:
Si Request.Form<>"" Entonces
Para cada Sql_Post en Request.Form
Para SQL_Data=0 a Ubound(SQL_inj)
si instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Entonces
Response.Write "<Script Language=****>alert('Solicitudes del sistema antiinyección universal SQL de World Movie Alliance ↓nn ¡No incluya caracteres ilegales en los parámetros e intente inyectar! nnHTTP://www.521movie. com '); historia.back(-1)</Script>"
Respuesta.fin
terminar si
próximo
próximo
finalice si
está bien, ya ha terminado. Hemos implementado la interceptación de información para solicitudes de obtención y publicación. Solo necesita consultar esta página antes de abrir un archivo de base de datos como conn.asp. Puede continuar desarrollando su programa sin preocuparse de si volverá a ser atacado por inyección SQL. ¿No es así?