¿Qué es una inyección SQL y cómo se evita?
Inyección SQL · En inglés: SQL injection · Seguridad y legal
Es un ataque en el que alguien escribe órdenes maliciosas en un formulario para que la base de datos las ejecute y le entregue información o borre algo. Se evita construyendo el sistema para que lo que escribe el usuario siempre se trate como dato y nunca como orden.
¿Qué es una inyección SQL?
SQL es el idioma con el que se le hacen preguntas a muchas bases de datos. En una inyección SQL, el atacante escribe en un campo de formulario, o en la dirección de una página, un pedazo de ese idioma disfrazado de dato, con la esperanza de que el sistema lo ejecute como una orden y le entregue información o borre algo.
La defensa principal es construir las consultas para que lo que escribe el usuario siempre se trate como dato y nunca como orden. Además sumamos filtros que bloquean el intento antes de que llegue al sitio.
Es uno de los ataques más conocidos contra sitios con base de datos, y un solo formulario mal hecho puede exponer los datos de tus clientes. Además del daño directo, una filtración de datos personales puede traer problemas con la ley de protección de datos.
Lo mismo, en pequeño y en grande
El formulario de contacto de una veterinaria
Una veterinaria tiene un formulario donde la gente escribe su nombre. Un atacante, en vez de su nombre, escribe un pedacito de código disfrazado. Si el sistema está bien hecho, ese texto se guarda como un nombre raro y no pasa nada.
Una tienda con miles de clientes
Una tienda grande guarda datos de miles de clientes en su base de datos. Sus formularios y buscadores están hechos para tratar todo lo que escribe la gente como dato y, además, hay filtros que frenan el intento antes de llegar. Así un formulario descuidado no expone a nadie.
Cómo lo usamos en Damorus
La protección contra inyección SQL hace parte de la seguridad básica de todos nuestros planes, junto con Cloudflare. En URG Technology la tienda no arma consultas SQL con el texto que escribe el cliente: habla con la base a través de Supabase y de funciones del servidor, y las reglas de Row Level Security limitan qué puede leer o escribir cada sesión.
Pon a prueba lo que leíste
Elige A, B o C. Si fallas, lees el porqué y pruebas otra vez.
En un formulario alguien escribe una orden en lugar de su nombre. ¿Qué debería hacer un sistema bien hecho?
Aprende jugando
Algo huele raro en la hoja
Algo huele raro en la hoja
Otros temas que te pueden interesar
También se le dice
