¿Qué es la inyección SQL? – Tu Web Tecno

Una de las clases más grandes de vulnerabilidades web se conoce como «inyección SQL» o SQLi. El lenguaje de consulta estructurado, también conocido como SQL, es el lenguaje utilizado para interactuar con la mayoría de las bases de datos, aunque se utilizan varios tipos de lenguaje según la plataforma de la base de datos. Cualquier sitio web que almacene datos del usuario como información de la cuenta o que proporcione la funcionalidad de carga del usuario como un sitio web de alojamiento de imágenes utiliza una base de datos para almacenar esos datos.

Sugerencia: SQL generalmente se pronuncia «ess cue ell» o «sequel», siendo la primera opción más común en inglés británico y la segunda más común en inglés americano. Ambas pronunciaciones se entienden generalmente en el contexto de la discusión de bases de datos.

¿Qué es SQLi?

SQLi es una vulnerabilidad en la que los desarrolladores web que diseñan el código que se comunica entre el servidor web y la base de datos no implementan la protección contra los comandos SQL enviados por un usuario. El problema es que es posible salir de las declaraciones de la base de datos y agregar nuevos argumentos o una declaración completamente nueva. La declaración de base de datos modificada o segunda puede realizar una serie de acciones, incluidas eliminaciones potencialmente grandes o fugas de datos.

Los exploits normalmente implican hacer realidad las instrucciones existentes en todas las circunstancias o proporcionar una segunda instrucción por lotes que lleve a cabo una acción específica, como: B. borrar o mostrar todos los datos. Por ejemplo, una declaración SQL para iniciar sesión en un sitio web puede verificar si el nombre de usuario transmitido y la contraseña transmitida coinciden con una entrada en la base de datos. Para intentar obtener acceso a un exploit de inyección SQL, puede intentar agregar una cláusula «o verdadera» como «o 1 = 1». Esto ejecutaría el comando similar a «Iniciar sesión con» [this] Nombre de usuario si la contraseña es [this]o esta afirmación es verdadera ”.

Cómo prevenir SQLi

Solía ​​ser un método muy común para que los sitios web violaran su base de datos y luego la filtraran en línea. Como resultado de un esfuerzo concertado para garantizar que la conciencia de seguridad sea parte de la capacitación de los desarrolladores, esta clase de vulnerabilidades se ha abordado en gran medida y rara vez se ve.

La forma correcta de prevenir SQLi es usar declaraciones preparadas, también conocidas como consultas parametrizadas. Tradicionalmente, las declaraciones SQL se declaran y la entrada del usuario se concatena durante esta declaración. Si se preparan las declaraciones, se escribe el comando de la base de datos y una función de ejecución ejecuta el comando e inserta los datos del usuario. Si bien esto puede parecer una pequeña diferencia, cambia completamente la forma en que se maneja el comando. La diferencia evita que se ejecuten comandos SQL significativos y trata todas las entradas del usuario como una cadena, lo que evita que se ejecute la inyección SQL.

Deja un comentario