miércoles, 20 de noviembre de 2013

Cómo utilizar sp_executesql para combatir inyecciones SQL

El servidor SQL sp_executesql procedimiento almacenado se ejecuta sentencias de SQL dinámico 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 sp_executesql procedimientos almacenados, junto con la función Replace para reemplazar el carácter comilla simple, que se utiliza para ejecutar código malicioso en el servidor.

 

Sp_executesql INYECCIONES

 

Haga clic en el botón Inicio de Windows y seleccione Todos los programas. Haz clic SQL Server, haga clic en SQL Server Management Studio para abrir el software.

 

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 seleccione Nueva consulta para abrir el editor.

 

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 (500) Juego nvarchar @ query = "SELECT nombre de los clientes que signupdate ='''' '01/01/2011

 

En este ejemplo, un hacker podría insertar citas en la cláusula que, lo que provoca errores en la consulta SQL.

 

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:

 

sp_executesql Replace (@ query, '\'','''')

 

El código reemplaza cada comilla simple con una doble cita, lo que elimina la posibilidad de inyección de SQL.

 

Presione la tecla F5 para ejecutar la sentencia. El SQL ejecuta y los resultados de la presentación de consulta en el panel de resultados.

 

 

No hay comentarios:

Publicar un comentario