Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/nabroleonx/dbslice
Utilidades de Propósito GeneralAuditoría de ConfiguraciónRecuperación de DatosDevSecOpsPrivacidadSeguridad de Bases de Datos
GitHubnabroleonx/dbslice

dbslice

Extrae una porción de tu base de datos de producción para reproducir errores localmente. Apunta dbslice a un registro, sigue las claves foráneas y te proporciona un subconjunto completo e importable.

Ver RepositorioSitio web
14163hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

dbslice logo

dbslice

PyPI version License: MIT Python 3.10+

Extrae subconjuntos mínimos de bases de datos, referencialmente íntegros, para desarrollo local y depuración.

El problema

Copiar una base de datos de producción completa a tu máquina es inviable. Pero reproducir un error a menudo requiere tener los datos exactos que lo causaron. dbslice resuelve esto extrayendo solo los registros que necesitas, siguiendo las relaciones de clave foránea para garantizar la integridad referencial.

dbslice — de semilla a subconjunto

Inicio rápido

root@kitploit:~
# Instalación global
uv tool install dbslice   # o: pip install dbslice

# Extrae un pedido y todos los registros relacionados
dbslice extract postgres://localhost/myapp --seed "orders.id=12345" > subset.sql

# Importa en la base de datos local
psql -d localdb < subset.sql

Funcionalidades

  • Sin configuración inicial — Inspecciona el esquema automáticamente, no requiere archivo de modelo de datos
  • Un solo comando — Extrae subconjuntos completos de datos con una sola invocación de CLI
  • Seguro por defecto — Detecta y anonimiza automáticamente campos sensibles (correos, teléfonos, SSN, etc.)
  • Perfiles de cumplimiento — Perfiles integrados para GDPR, Safe Harbor de HIPAA y PCI-DSS con escaneo PII en dos fases
  • Interfaz de mapeo de columnas — Interfaz web local para mapear columnas visualmente, aplicar perfiles de cumplimiento y exportar configuración
  • Múltiples formatos de salida — SQL, JSON y CSV
  • Streaming — Extracción eficiente en memoria para conjuntos grandes (100K+ filas)
  • Claves foráneas virtuales — Soporte para GenericForeignKeys de Django y relaciones implícitas mediante configuración
  • Archivos de configuración — Configuración basada en YAML para extracciones repetibles
  • Validación — Verifica la integridad referencial de los datos extraídos

Soporte de bases de datos

Base de datosEstado
PostgreSQLCompatibilidad total
MySQLPlanificado (aún no implementado)
SQLitePlanificado (aún no implementado)

Instalación

root@kitploit:~
# Instalar con uv (recomendado)
uv add dbslice

# Probar sin instalar
uvx dbslice --help

# O con pip
pip install dbslice

Uso

Extracción básica

root@kitploit:~
# Extraer por clave primaria
dbslice extract postgres://user:pass@host:5432/db --seed "orders.id=12345"

# Extraer con cláusula WHERE
dbslice extract postgres://localhost/db --seed "orders:status='failed' AND created_at > '2024-01-01'"

# Múltiples semillas
dbslice extract postgres://localhost/db \
  --seed "orders.id=100" \
  --seed "orders.id=101"

Control de recorrido

root@kitploit:~
# Limitar profundidad (por defecto: 3)
dbslice extract postgres://... --seed "orders.id=1" --depth 2

# Dirección: up (solo padres), down (solo hijos), both (por defecto)
dbslice extract postgres://... --seed "orders.id=1" --direction up

Anonimización

root@kitploit:~
# Anonimizar automáticamente campos sensibles detectados
dbslice extract postgres://... --seed "users.id=1" --anonymize

# Enmascarar campos adicionales
dbslice extract postgres://... --seed "users.id=1" --anonymize --redact "audit_logs.ip_address"

Interfaz de mapeo de columnas

Mapea columnas visualmente, aplica perfiles de cumplimiento y genera una configuración lista para usar, todo desde una interfaz web local.

root@kitploit:~
dbslice map postgres://localhost/myapp

# Puerto personalizado
dbslice map postgres://localhost/myapp --port 8888

# También funciona con uvx (sin instalación)
uvx dbslice map postgres://localhost/myapp
Mapea columnas a reglas de anonimizaciónGenera y exporta configuración
Mapeo de columnasConfiguración generada

Se ejecuta en 127.0.0.1:9473 con un token de sesión de un solo uso — ningún dato sale de tu máquina. Aplica perfiles GDPR, HIPAA o PCI-DSS con un clic, revisa qué se enmascara y luego descarga el YAML.

Perfiles de cumplimiento

root@kitploit:~
# HIPAA Safe Harbor — enmascara automáticamente los 18 tipos de identificadores
dbslice extract postgres://... --seed "patients.id=1" --compliance hipaa --compliance-strict

# Múltiples perfiles + manifiesto de auditoría
dbslice extract postgres://... --seed "users.id=1" --compliance gdpr --compliance pci-dss -f subset.sql
# Produce subset.sql + subset.manifest.json

Formatos de salida

root@kitploit:~
# SQL (por defecto)
dbslice extract postgres://... --seed "orders.id=1" --output sql

# Fixtures JSON
dbslice extract postgres://... --seed "orders.id=1" --output json --out-file fixtures/

# CSV
dbslice extract postgres://... --seed "orders.id=1" --output csv --out-file data/

Claves foráneas virtuales

Para relaciones no definidas en el esquema de la base de datos (GenericForeignKeys de Django, relaciones implícitas):

root@kitploit:~
# dbslice.yaml
database:
  url: postgres://localhost:5432/myapp

virtual_foreign_keys:
  - source_table: notifications
    source_columns: [object_id]
    target_table: orders
    description: "FK genérica a pedidos mediante ContentType"

  - source_table: audit_log
    source_columns: [user_id]
    target_table: users
    description: "FK implícita sin restricción en BD"
root@kitploit:~
dbslice extract --config dbslice.yaml --seed "users.id=1"

Inspeccionar esquema

root@kitploit:~
dbslice inspect postgres://localhost/myapp

Archivo de configuración

root@kitploit:~
# Generar configuración desde la base de datos
dbslice init postgres://localhost/myapp --out-file dbslice.yaml

# Usar configuración
dbslice extract --config dbslice.yaml --seed "orders.id=12345"

Cómo funciona

  1. Inspeccionar — Lee el esquema de la base de datos para descubrir tablas y relaciones de clave foránea
  2. Recorrer — A partir del(los) registro(s) semilla, sigue las relaciones FK mediante BFS
  3. Extraer — Obtiene todos los registros identificados
  4. Ordenar — Ordena topológicamente las tablas para un orden correcto de INSERT
  5. Emitir — Genera SQL/JSON/CSV con el escape adecuado

Comparativa

CaracterísticadbsliceJailerGreenmaskslice-db
LenguajePythonJavaGoRuby
ConfiguraciónSin configuraciónRequiere archivo de modeloConfiguración requeridaYAML manual
Tiempo de configuraciónSegundosHorasMedioMedio
AnonimizaciónIntegrada (Faker)Basada en pluginsTransformadores avanzadosNo disponible
Perfiles de cumplimientoGDPR, HIPAA, PCI-DSSNingunoNingunoNinguno
Interfaz de mapeo de columnasIntegrada (local)NingunaNingunaNinguna
Escaneo de valores PIIDos fases (pre/post máscara)NingunoNingunoNinguno
SubconjuntoRecorrido FKRecorrido FKLimitadoRecorrido FK
Formatos de salidaSQL, JSON, CSVSQL, XML, CSVSQLSolo SQL
Manejo de ciclosAutomáticoConfiguración manualN/AManual
StreamingIntegradoConfigurableIntegradoNo disponible
MantenimientoActivoActivoActivoSin mantenimiento

dbslice es la opción ligera y sin configuración en Python: instala y extrae en menos de un minuto.

Desarrollo

root@kitploit:~
git clone https://github.com/nabroleonx/dbslice.git
cd dbslice
uv sync --dev
uv run pytest

Licencia

MIT

Descargar herramienta