Recientemente, debido a la modificación de un programa ASP (que tiene una vulnerabilidad de inyección SQL), encontré muchos métodos de prevención relacionados en Internet, pero ninguno de ellos fue satisfactorio, así que mejoré integralmente algunos de los métodos en Internet y escribí esto. Función ASP. Para su referencia.
Aquí hay una cita:
Función SafeRequest(ParaName)
Dim ParaValue
ParaValue=Solicitud(ParaName)
si IsNumeric(ParaValue) = Verdadero entonces
SafeRequest=ParaValor
Función de salida
elseIf Instr(LCase(ParaValue),"seleccionar ") > 0 o Instr(LCase(ParaValue),"insertar ") > 0 o Instr(LCase(ParaValue),"eliminar de") > 0 o Instr(LCase(ParaValue) ,"count() > 0 o Instr(LCase(ParaValue),"drop table") > 0 o Instr(LCase(ParaValue),"update ") > 0 o Instr(LCase(ParaValue),"truncate ") > 0 o Instr(LCase(ParaValue),"asc() > 0 o Instr(LCase(ParaValue),"mid() > 0 o Instr(LCase(ParaValue),"char() > 0 o Instr(LCase (ParaValue),"xp_cmdshell") > 0 o Instr(LCase(ParaValue),"exec master") > 0 o Instr(LCase(ParaValue),"administradores de grupo local de red") > 0 o Instr(LCase(ParaValue)," y ") > 0 o Instr(LCase(ParaValue),"net user") > 0 o Instr(LCase(ParaValue)," o ") > 0 entonces
Respuesta.Escribir "<lenguaje de script='javascript'>"
Response.Write "alert('¡Solicitud ilegal!');" 'Se encontró un mensaje de solicitud de ataque de inyección SQL
Response.Write "location.href='http://blog.downcodes.com/';" 'Se encontró la URL de redireccionamiento del ataque de inyección SQL
Respuesta.Escribir "<script>"
Respuesta.fin
demás
SafeRequest=ParaValor
Terminar si
La función Finalizar
reemplaza su Solicitud con la función SafeRequest