API-Keys gehören nicht ins Repository
nosecrets prüft staged Dateien vor dem Commit auf Secrets, Tokens und auffällige High-Entropy-Strings – lokal, schnell und ohne Cloud-Abhängigkeit.
GitHubnosecrets prüft staged Dateien vor dem Commit auf Secrets, Tokens und auffällige High-Entropy-Strings – lokal, schnell und ohne Cloud-Abhängigkeit.
Worum es geht
nosecrets ist kein allgemeiner Security-Scanner für alles, sondern ein bewusst fokussiertes Werkzeug für einen kritischen Moment: den lokalen Commit.
Statt Git-History zu durchforsten oder Daten an einen externen Dienst zu schicken, prüft nosecrets genau dort, wo versehentliche Leaks meistens entstehen: in staged Dateien kurz vor dem Commit.
Das Tool kombiniert signaturbasierte Erkennung mit konfigurierbarer Entropy-Analyse, Fingerprint-Ignores und klaren Exit-Codes. Genau deshalb passt es gut in Pre-commit-Hooks, lokale Workflows und CI/CD-Pipelines.
Installation
curl -fsSL https://raw.githubusercontent.com/casoon/nosecrets/main/install.sh | sh Wie es arbeitet
Staged Dateien einsammeln
Regeln und Entropy prüfen
Ignores und Allowlists anwenden
Commit blockieren oder freigeben
CLI im Alltag
# Staged Files prüfen (Pre-commit) nosecrets scan --staged # Verzeichnis scannen nosecrets scan src/ # Interaktiv: Ignores hinzufügen nosecrets scan --staged --interactive # Einzelnen Fund ignorieren nosecrets ignore nsi_abcdef123456
Konfiguration
`.nosecrets.toml`
Pfad-Ignores, Allowlists und Entropy-Verhalten lassen sich zentral konfigurieren.
[ignore] paths = ["vendor/", "node_modules/", "*.lock"] [allow] patterns = ["EXAMPLE", "changeme", "YOUR_.*_HERE"] [entropy] enabled = true min_length = 20 threshold = 4.2 require_context = true
`.nosecretsignore` und Inline-Ignores
Einzelne Findings können per Fingerprint oder direkt im Code unterdrückt werden, ohne den Scanner insgesamt stumpf zu schalten.
nsi_a1b2c3d4e5f6 nsi_b2c3d4e5f6a7:src/config.py api_key = "sk_test_xxx" # @nosecrets-ignore
Was technisch wichtig ist
Signaturbasierte Erkennung
Entropy Detection
Vollständig offline
Pre-commit fokussiert
Wenig False Positives
Flexible Konfiguration
Integration
Pre-commit Hook
#!/bin/sh nosecrets scan --staged
GitHub Actions
- name: Install nosecrets run: npm install -g @casoon/nosecrets - name: Scan for secrets run: nosecrets scan src/ --format json
Perfekt für
Mehr Kontext zur Motivation und zur Einordnung des Tools gibt es im begleitenden Artikel.
Zum Artikel