Ataques de inyección SQL

Haz una pregunta

Inyección SQL

Los ataques de inyección SQL atacan los sitios web que dependen de bases de datos relacionadas.

En este tipo de páginas Web, los parámetros se pasan a la base de datos como una consulta de SQL. Si un diseñador no verifica los parámetros que se pasan en la consulta de SQL, un hacker puede modificar la consulta para acceder a toda la base de datos e incluso modificar su contenido.

Algunos caracteres posibilitan coordinar varias consultas de SQL o ignorar el resto de la consulta. Al insertar este tipo de carácter en la consulta, un hacker puede ejecutar potencialmente la consulta que elija.

Ante la siguiente consulta, que espera un nombre de usuario como parámetro:

SELECT * FROM usuarios WHERE nombre="$nombre";

Un intruso sólo necesita escribir un nombre, por ejemplo, "toto" O 1=1 O nombre="titi" para que la consulta quede de la siguiente manera:

SELECT * FROM usuarios WHERE nombre="toto" OR 1=1 OR nombre="titi";

Con la consulta anterior siempre se realiza la cláusula WHERE, lo que significa que devolverá registros que corresponden a todos los usuarios.

Procedimientos almacenados

Además, algunos sistemas de administración de bases de datos, como por ejemplo Microsoft SQL Server, poseen procedimientos almacenados que posibilitan ejecutar comandos de administración. Estos procedimientos son potencialmente peligrosos ya que permiten que un usuario malintencionado ejecute comandos de sistema que puedan causar una posible intrusión.

Contramedidas

Estas son algunas reglas que pueden ayudarle a protegerse contra ataques de inyección SQL:

  • Verifique el formato de los datos de entrada y, en particular, si hay caracteres especiales;
  • No deje que se vean mensajes de error explícitos que muestren la consulta o parte de la consulta de SQL;
  • Elimine las cuentas de usuario que no se usen y especialmente las predeterminadas;
  • No acepte cuentas sin contraseñas;
  • Mantenga al mínimo los privilegios de las cuentas que se usan;
  • Elimine los procedimientos almacenados.
Jean-François Pillou

Nuestros contenidos son redactados en colaboración con expertos del ámbito tecnológico bajo la dirección de Jean-François Pillou, fundador de CCM.net y director digital en el Grupo Figaro. CCM es un sitio de tecnología líder a nivel internacional y está disponible en 11 idiomas.

Más información sobre el equipo de CCM

Consulta también