La inyección SQL sucede cuando un desarrollador acepta la entrada del usuario que está directamente colocado en una sentencia SQL y no filtrar adecuadamente los caracteres peligrosos. Esto puede permitir a un usuario malintencionado poner en peligro no sólo robar los datos de su base de datos, sino también modificar y borrar. Algunos servidores SQL como Microsoft SQL Server contienen procedimientos almacenados y ampliada Procedimientos (funciones de servidor de bases de datos).
Si un atacante puede obtener acceso a estos procedimientos puede ser posible poner en peligro a toda la máquina. Los atacantes comúnmente único qoutes insertar una URL en la cadena de consulta, o en un campo de introducción de formas para la prueba de inyección SQL. Si un atacante recibe un mensaje de error como la siguiente hay una buena probabilidad de que la aplicación es vulnerable a inyección SQL.
Como se puede Evitar en ASP:
Cadena = replace(Cadena,”delete”,”")
Cadena = replace(Cadena,”update”,”")
Cadena = replace(Cadena,”select”,”")
Cadena = replace(Cadena,”drop”,”")
Cadena = replace(Cadena,”create”,”")
Cadena = replace(Cadena,”union”,”")
Cadena = replace(Cadena,”from”,”")
Cadena = replace(Cadena,”where”,”")
Cadena = replace(Cadena,”@”,”")
Cadena = replace(Cadena,” or “,”")
Cadena = replace(Cadena,” and “,”")
Cadena = replace(Cadena,”‘”,”")
Cadena = replace(Cadena,”%”,”")
Cadena = replace(Cadena,”&”,”")
Cadena = replace(Cadena,”+”,”")
Cadena = replace(Cadena,”-”,”")
Cadena = replace(Cadena,”=”,”")
Cadena = replace(Cadena,”*”,”")
FUN_SeguridadSQL = Cadena
End Function