Inyección SQL

Autor: Peter Berry
Fecha De Creación: 13 Agosto 2021
Fecha De Actualización: 20 Junio 2024
Anonim
Inyección SQL - Tecnología
Inyección SQL - Tecnología

Contenido

Definición - ¿Qué significa la inyección SQL?

Una inyección SQL es un ataque informático en el que el código malicioso se incrusta en una aplicación mal diseñada y luego se pasa a la base de datos de back-end. Los datos maliciosos producen resultados de consultas a la base de datos o acciones que nunca deberían haberse ejecutado.


Una introducción a Microsoft Azure y la nube de Microsoft | A lo largo de esta guía, aprenderá de qué se trata la computación en la nube y cómo Microsoft Azure puede ayudarlo a migrar y administrar su negocio desde la nube.

Techopedia explica la inyección SQL

Veamos un ejemplo de un ataque de inyección SQL:

Una aplicación que ejecuta las operaciones de un banco contiene menús que pueden usarse para buscar detalles del cliente utilizando puntos de datos como el número de Seguro Social del cliente. En segundo plano, la aplicación llama a una consulta SQL que se ejecuta en la base de datos pasando los valores de búsqueda ingresados ​​de la siguiente manera:

SELECCIONE nombre_cliente, teléfono, dirección, fecha_de_nacimiento DONDE social_sec_no = 23425

En este script de muestra, el usuario ingresa el valor 23425 en la ventana del menú de la aplicación, solicitando al usuario que ingrese el número de Seguro Social. Luego, utilizando el valor proporcionado por el usuario, se ejecuta una consulta SQL en la base de datos.

Un usuario con conocimientos de SQL puede comprender la aplicación y, en lugar de ingresar un solo valor cuando se le solicita el número de Seguro Social, ingrese la cadena "23425 o 1 = 1", que se pasa a la base de datos de la siguiente manera:

SELECCIONE nombre_cliente, teléfono, dirección, fecha_de_natal DONDE social_sec_no = 23425 o 1 = 1

La cláusula WHERE es importante porque introduce vulnerabilidad. En una base de datos, la condición 1 = 1 siempre es verdadera, y debido a que la consulta se ha especificado para devolver los detalles del número de Seguro Social del cliente (23425) o DONDE 1 = 1, la consulta devolverá todas las filas de la tabla, que no era intención original.

El ejemplo anterior de ataque de inyección SQL es simple, pero muestra cómo explotar una vulnerabilidad para engañar a la aplicación para que ejecute una consulta o comando de base de datos de fondo.

Los ataques de inyección SQL pueden mitigarse garantizando un diseño de aplicación adecuado, especialmente en módulos que requieren la entrada del usuario para ejecutar consultas o comandos de la base de datos. En el ejemplo anterior, la aplicación podría modificarse para que solo acepte un valor numérico.