Diferencia entre revisiones de «SQL»
(Creacion del apartado SQL) |
Sin resumen de edición |
||
| Línea 60: | Línea 60: | ||
' OR '1'='1 | ' OR '1'='1 | ||
</pre> | </pre> | ||
[[Categoría:Bases de datos]] | |||
Revisión del 02:05 28 oct 2025
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