Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
dbslice — Extrayez une tranche de votre base de production pour reproduire des bugs localement. Pointez dbslice sur un enregistrement, il suit les clés étrangères et vous donne un sous-ensemble complet et importable. | Kitploit
Outils/GitHubGitHub/nabroleonx/dbslice
Utilitaires GénérauxAudit de ConfigurationRécupération de DonnéesDevSecOpsProtection de la Vie PrivéeSécurité des Bases de Données
GitHubnabroleonx/dbslice

dbslice

Extrayez une tranche de votre base de production pour reproduire des bugs localement. Pointez dbslice sur un enregistrement, il suit les clés étrangères et vous donne un sous-ensemble complet et importable.

Voir le dépôt
1416il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Logo dbslice

dbslice

Version PyPI Licence : MIT Python 3.10+

Extrayez des sous-ensembles de base de données minimaux et intègres sur le plan référentiel pour le développement local et le débogage.

Le problème

Copier toute une base de données de production sur votre machine est irréalisable. Mais reproduire un bogue nécessite souvent d'avoir les données exactes qui l'ont provoqué. dbslice résout ce problème en extrayant uniquement les enregistrements dont vous avez besoin, en suivant les relations de clés étrangères pour garantir l'intégrité référentielle.

dbslice — de la graine au sous-ensemble

Démarrage rapide

root@kitploit:~
# Installation globale
uv tool install dbslice   # ou : pip install dbslice

# Extraire une commande et tous les enregistrements associés
dbslice extract postgres://localhost/myapp --seed "orders.id=12345" > subset.sql

# Importer dans la base de données locale
psql -d localdb < subset.sql

Fonctionnalités

  • Démarrage zéro configuration – Analyse automatique du schéma, aucun fichier de modèle de données requis
  • Commande unique – Extraire des sous-ensembles de données complets avec une seule invocation en ligne de commande
  • Sûr par défaut – Détection et anonymisation automatiques des champs sensibles (emails, téléphones, SSN, etc.)
  • Profils de conformité – Profils intégrés RGPD, HIPAA Safe Harbor et PCI-DSS avec analyse PII en deux phases
  • Interface de mappage de colonnes – Interface utilisateur locale dans le navigateur pour mapper visuellement les colonnes, appliquer les profils de conformité et exporter la configuration
  • Plusieurs formats de sortie – SQL, JSON et CSV
  • Streaming – Extraction économe en mémoire pour les grands ensembles de données (100 000+ lignes)
  • Clés étrangères virtuelles – Prise en charge des GenericForeignKeys Django et des relations implicites via la configuration
  • Fichiers de configuration – Configuration basée sur YAML pour des extractions reproductibles
  • Validation – Vérifie l'intégrité référentielle des données extraites

Support des bases de données

Base de donnéesStatut
PostgreSQLEntièrement pris en charge
MySQLPlanifié (pas encore implémenté)
SQLitePlanifié (pas encore implémenté)

Installation

root@kitploit:~
# Installation avec uv (recommandé)
uv add dbslice

# Essai sans installation
uvx dbslice --help

# Ou avec pip
pip install dbslice

Utilisation

Extraction de base

root@kitploit:~
# Extraction par clé primaire
dbslice extract postgres://user:pass@host:5432/db --seed "orders.id=12345"

# Extraction avec clause WHERE
dbslice extract postgres://localhost/db --seed "orders:status='failed' AND created_at > '2024-01-01'"

# Plusieurs graines
dbslice extract postgres://localhost/db \
  --seed "orders.id=100" \
  --seed "orders.id=101"

Contrôle du parcours

root@kitploit:~
# Limiter la profondeur (par défaut : 3)
dbslice extract postgres://... --seed "orders.id=1" --depth 2

# Direction : up (parents uniquement), down (enfants uniquement), both (par défaut)
dbslice extract postgres://... --seed "orders.id=1" --direction up

Anonymisation

root@kitploit:~
# Anonymisation automatique des champs sensibles détectés
dbslice extract postgres://... --seed "users.id=1" --anonymize

# Masquage de champs supplémentaires
dbslice extract postgres://... --seed "users.id=1" --anonymize --redact "audit_logs.ip_address"

Interface de mappage de colonnes

Mappez visuellement les colonnes, appliquez des profils de conformité et générez une configuration prête à l'emploi, le tout depuis une interface utilisateur locale dans le navigateur.

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

# Port personnalisé
dbslice map postgres://localhost/myapp --port 8888

# Fonctionne aussi avec uvx (aucune installation nécessaire)
uvx dbslice map postgres://localhost/myapp
Mapper les colonnes aux règles d'anonymisationGénérer et exporter la configuration
Mappage de colonnesConfiguration générée

S'exécute sur 127.0.0.1:9473 avec un jeton de session unique – aucune donnée ne quitte votre machine. Appliquez les profils RGPD, HIPAA ou PCI-DSS en un clic, examinez ce qui sera masqué, puis téléchargez le YAML.

Profils de conformité

root@kitploit:~
# HIPAA Safe Harbor – masque automatiquement les 18 types d'identifiants
dbslice extract postgres://... --seed "patients.id=1" --compliance hipaa --compliance-strict

# Profils multiples + manifeste d'audit
dbslice extract postgres://... --seed "users.id=1" --compliance gdpr --compliance pci-dss -f subset.sql
# Produit subset.sql + subset.manifest.json

Formats de sortie

root@kitploit:~
# SQL (par défaut)
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/

Clés étrangères virtuelles

Pour les relations non définies dans le schéma de la base de données (GenericForeignKeys Django, relations implicites) :

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

virtual_foreign_keys:
  - source_table: notifications
    source_columns: [object_id]
    target_table: orders
    description: "Clé étrangère générique vers orders via ContentType"

  - source_table: audit_log
    source_columns: [user_id]
    target_table: users
    description: "Clé étrangère implicite sans contrainte en base"
root@kitploit:~
dbslice extract --config dbslice.yaml --seed "users.id=1"

Inspection du schéma

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

Fichier de configuration

root@kitploit:~
# Générer la configuration à partir de la base de données
dbslice init postgres://localhost/myapp --out-file dbslice.yaml

# Utiliser la configuration
dbslice extract --config dbslice.yaml --seed "orders.id=12345"

Comment ça fonctionne

  1. Inspection – Lit le schéma de la base de données pour découvrir les tables et les relations de clés étrangères
  2. Parcours – À partir du ou des enregistrements racines, suit les relations de clés étrangères via un parcours BFS
  3. Extraction – Récupère tous les enregistrements identifiés
  4. Tri – Trie les tables de manière topologique pour un ordre d'INSERT correct
  5. Sortie – Génère du SQL/JSON/CSV avec un échappement approprié

Comparaison

dbslice est l'option légère et sans configuration en Python : installez et extrayez en moins d'une minute.

Développement

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

Licence

MIT

Télécharger l’outil
FonctionnalitédbsliceJailerGreenmaskslice-db
LangagePythonJavaGoRuby
ConfigurationZéro configNécessite un fichier modèleConfiguration requiseYAML manuel
Temps de mise en placeSecondesHeuresMoyenMoyen
AnonymisationIntégrée (Faker)Basée sur des pluginsTransformateurs avancésNon disponible
Profils de conformitéRGPD, HIPAA, PCI-DSSAucunAucunAucun
Interface de mappage de colonnesIntégrée (locale)AucuneAucuneAucune
Analyse de valeur PIIDeux phases (avant/après masquage)AucuneAucuneAucune
Sous-ensembleParcours FKParcours FKLimitéParcours FK
Formats de sortieSQL, JSON, CSVSQL, XML, CSVSQLSQL uniquement
Gestion des cyclesAutomatiqueConfiguration manuelleN/AManuelle
StreamingIntégréConfigurableIntégréNon disponible
MaintenanceActiveActiveActiveNon maintenu