¿Qué es una inyección SQL?

Una inyección de lenguaje de consulta estructurado (SQL) es un tipo de ataque que casi siempre se intenta contra un sitio web impulsado por una base de datos. Es un intento de insertar código malicioso en las consultas SQL del sitio para interferir con la gestión de datos al destruir, alterar o revelar datos que están almacenados en las tablas de la base de datos que maneja el sitio. SQL es un lenguaje de programación estándar que se emplea para crear, actualizar y recuperar datos almacenados en bases de datos.

Los peligros de los ataques de inyección SQL son numerosos y, a menudo, muy devastadores cuando se llevan a cabo con éxito. La información confidencial, como los números de tarjetas de crédito, los registros médicos de una persona, los nombres de usuario y las contraseñas de cuentas como la banca en línea y el correo electrónico, así como varios tipos de números de identificación, pueden estar expuestos a los ciberdelincuentes. Aunque el robo de datos probablemente sea el objetivo principal de cualquiera que intente utilizar la inyección SQL, no es la única motivación para el uso de esta o cualquier otro tipo de técnica de inyección de código, como el cross-site scripting. Los visitantes de un sitio web que muestra información que no les gusta pueden intentar ataques de inyección SQL para deshabilitar el sitio, robar datos o alterar los datos para destruir la misión de las personas detrás del sitio.

A veces, se intenta un ataque de inyección SQL contra un sitio web por parte de un visitante descontento al que los propietarios del sitio podrían haber prohibido su cuenta, que envidia la popularidad del sitio o que busca destruir el negocio en línea de alguien a quien considera. ser un enemigo. Obviamente, se requiere conocimiento de SQL para lanzar un ataque de inyección de SQL, pero generalmente no se considera un lenguaje muy difícil de aprender, en comparación con otros lenguajes de programación, y se puede lograr mucho con solo una comprensión básica, pero sólida, de cómo usarlo. eso. Esto significa que hay un buen número de personas que navegan por Internet que tienen la habilidad necesaria para intentar la inyección SQL en un sitio web.

Los desarrolladores web, en particular aquellos que se especializan en el desarrollo web back-end, son responsables de garantizar que los sitios que programan estén seguros contra la inyección de SQL. Casi siempre hay más de una forma de lograr una seguridad tan importante, y la mayoría de esos métodos se consideran soluciones simples pero muy efectivas. Por ejemplo, un desarrollador puede usar la función mysql_real_escape_string () o declaraciones preparadas cuando escribe en el lenguaje de preprocesador de hipertexto (PHP). Los métodos elegidos para protegerse contra ataques deben considerarse cuidadosamente, porque el rendimiento del sitio en su conjunto no puede ignorarse incluso al configurar la seguridad.