SQL

De CiberWiki

SQL

SQL (Structured Query Language) es el lenguaje estándar utilizado para gestionar y manipular bases de datos relacionales. En el ámbito de la ciberseguridad, comprender SQL es fundamental para identificar vulnerabilidades, prevenir inyecciones maliciosas y asegurar la integridad de los datos.

Conceptos Fundamentales

  • Base de datos (Database) — Colección organizada de información.
  • Tabla (Table) — Estructura que almacena los datos en filas y columnas.
  • Registro (Row) — Una entrada individual dentro de una tabla.
  • Campo (Field) — Un atributo específico dentro de una tabla.

Ejemplo de creación de tabla:

CREATE TABLE usuarios (
    id INT PRIMARY KEY AUTO_INCREMENT,
    nombre VARCHAR(50),
    correo VARCHAR(100),
    contraseña VARCHAR(100)
);

Consultas SQL Básicas

SELECT
Utilizado para consultar información dentro de una base de datos.
SELECT * FROM usuarios;
INSERT
Añade nuevos registros a una tabla.
INSERT INTO usuarios (nombre, correo, contraseña)
VALUES ('user', 'user@darfe.es', 'clave123');

UPDATE
Modifica registros existentes.
UPDATE usuarios
SET contraseña = 'claveNueva'
WHERE nombre = 'Darfe';

DELETE
Elimina registros de una tabla.
DELETE FROM usuarios WHERE id = 3;

Seguridad y Buenas Prácticas

  • Validación de entradas: Evita la inyección SQL usando consultas preparadas.
  • Principio de menor privilegio: Los usuarios de base de datos deben tener solo los permisos necesarios.
  • Cifrado: Almacena contraseñas usando hash (por ejemplo, bcrypt o Argon2).
  • Auditoría: Monitorea los accesos y modificaciones en tablas sensibles.

Ejemplo de inyección SQL maliciosa:

' OR '1'='1