¿Qué es una inyección SQL?
Una inyección de lenguaje de consulta estructurada (SQL) es un tipo de ataque que casi siempre se intenta contra un sitio web que está impulsado por la base de datos. Es un esfuerzo por insertar código malicioso en las consultas SQL del sitio para interferir con la gestión de datos destruyendo, alterando o revelando datos que se almacenan en las tablas de la base de datos que impulsa el sitio. SQL es un lenguaje de programación estándar empleado para crear, actualizar y recuperar datos que se almacenan 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 para cuentas como la banca en línea y el correo electrónico, así como varios tipos de números de identificación se pueden expuestos a los ciberdelincuentes. Aunque el robo de datos probablemente es el objetivo principal de cualquier persona que intente usar la inyección SQL, no es la única motivación para el uso de este o cualquieraOtro tipo de técnica de inyección de código, como secuencias de comandos de sitios cruzados. Los visitantes de un sitio web que muestra información que no les gusta podría 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, un visitante descontento intenta un ataque de inyección SQL contra un sitio web que los propietarios de los sitios le han prohibido su cuenta, que envidia la popularidad del sitio o que busca destruir el negocio en línea de alguien que él o ella considera ser un enemigo. El conocimiento de SQL obviamente es necesario para lanzar un ataque de inyección SQL, pero generalmente no se considera un lenguaje muy difícil de aprender, en comparación con otros lenguajes de programación, y mucho se puede lograr con solo una comprensión básica, pero sólida, de cómo usarlo. Esto significa que hay una buena cantidad de personas que surfean el intErnet que tiene la habilidad necesaria para intentar la inyección de SQL contra un sitio web.
Los desarrolladores web, particularmente aquellos que se especializan en el desarrollo web de back-end, son responsables de garantizar que los sitios que programen sean 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 las declaraciones preparadas al secuestrar en el lenguaje del preprocesador de hipertexto (PHP). Los métodos elegidos para proteger contra el ataque deben considerarse cuidadosamente, porque el rendimiento del sitio en su conjunto no puede ser ignorado incluso al establecer la seguridad.