El procedimiento sp_executesql servidor SQL almacenado ejecuta sentencias SQL dinámicas que se crean en una aplicación. La inyección SQL es un hack que permite a los usuarios tener acceso a su base de datos SQL . Utilice los procedimientos almacenados sp_executesql junto con la función "Reemplazar" para reemplazar el carácter comilla simple , que se utiliza para ejecutar código malicioso en el servidor. Instrucciones
1
Haga clic en el Windows botón " Inicio" y seleccione " Todos los programas". Haga clic en " SQL Server", haga clic en "SQL Server Management Studio" para abrir el software.
2
Escriba su nombre de usuario y contraseña en el servidor SQL de inicio de sesión en la pantalla para acceder a las bases de datos del servidor. Haga clic en una base de datos que desea consultar y seleccionar " Nueva consulta " para abrir el editor.
3
Crear una consulta SQL dinámico . El código siguiente crea una consulta dinámica que contiene citas dentro de la declaración:
declare @ consulta como nvarchar ( 500 ) set @ query = " SELECT nombre de los clientes que signupdate ='' 01/01/2011 '' '
en este ejemplo , un hacker podría insertar citas en la cláusula "where" , lo que provoca errores en la consulta SQL .
4
Utilice el procedimiento almacenado sp_executesql con la función Replace para evitar la inyección SQL . Escriba el siguiente código en el editor:
Reemplazar sp_executesql ( @ query , '\\ '' , '''' )
El código reemplaza cada comilla simple con un doble presupuesto, lo que elimina la posibilidad de inyección de SQL .
5
Presione la tecla F5 para ejecutar la sentencia . El SQL se ejecuta y los resultados de la consulta en la pantalla del panel de resultados.