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 los siguientes caracteres no se pueden incluir en la solicitud:
|y|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare
Cada carácter está separado 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
Terminar si
De esta manera, hemos implementado la interceptación por inyección de solicitudes de obtención, pero aún necesitamos filtrar las solicitudes de publicación, por lo que debemos continuar considerando request.form, que también existe en forma de matriz. Solo necesitamos 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('Mensaje 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
terminar si
Bien, ya terminó. 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í?