Skip to main content

Installation und Schnellstart

Niveau Anfänger
Lesezeit ⏱ 15 Min.
Wörter 2724
Themen installcliconfig

StaticCodeAudit

by CodeFixture

Eigenständiges Werkzeug für Compliance-, Sicherheits- und Codequalitätsaudits von Webprojekten (Python, JavaScript/TypeScript, HTML, Java, C#, PHP, YAML).


Inhaltsverzeichnis

  1. Installation
  2. Schnellstart
  3. CLI-Optionen
  4. Projektverwaltung
  5. Konfiguration
  6. Auditkategorien
  7. Berichte
  8. CI/CD-Integration
  9. Internationalisierung (i18n)
  10. Eigene Regeln
  11. Lizenz

Installation

StaticCodeAudit wird als eigenständige Binärdatei pro Plattform geliefert. Keine externe Abhängigkeit erforderlich, kein Netzwerkzugriff zur Laufzeit.

  1. Laden Sie das Archiv für Ihre Plattform aus Ihrem Kundenbereich herunter:

    • macOS Apple Silicon: staticcodeaudit-macos-arm64.tar.gz
    • macOS Intel: staticcodeaudit-macos-x64.tar.gz
    • Linux x64: staticcodeaudit-linux-x64.tar.gz
    • Windows x64: staticcodeaudit-windows-x64.zip
  2. Entpacken Sie das Archiv in das Verzeichnis Ihrer Wahl.

  3. Führen Sie die Binärdatei aus, um die Installation zu prüfen:

./staticcodeaudit-macos-arm64 --help

Sie können die Binärdatei optional in Ihrem PATH unter dem Namen staticcodeaudit ablegen, um die nachfolgenden Beispiele zu vereinfachen.


Schnellstart

# Erster Lauf: erzeugt automatisch audit.config.json und registriert das Projekt
./staticcodeaudit-macos-arm64 /path/to/my-project --init

# Audit ausführen
./staticcodeaudit-macos-arm64 /path/to/my-project

Das --init-Flag erstellt interaktiv audit.config.json und erkennt:

  • Projektsprachen (Python, JavaScript/TypeScript, HTML, Java, C#, PHP)
  • Quellcode-Verzeichnisse (app/, src/, etc.)

Wichtig: Zur Laufzeit verwendet die Binärdatei ausschließlich die Konfigurationsdatei audit.config.json — keine automatische Erkennung.


CLI-Optionen

Option Beschreibung
project_path Pfad zum zu auditierenden Projekt (Standard: .)
--init Erstellt audit.config.json interaktiv
--quick, -q Schnellmodus (nur Sicherheit)
--severity LEVELS Filtert Regeln nach Schweregrad, kommagetrennt (z. B. CRITICAL,HIGH)
--fail-on-high Exit-Code 1, wenn HIGH-Schwachstellen gefunden werden (CI/CD)
--sarif Erzeugt SARIF 2.1.0-Export (GitHub Code Scanning, GitLab SAST)
--sbom Erzeugt CycloneDX 1.5-SBOM-Export
--demo Erzeugt einen anonymisierten Bericht (Pfade, Code, Lösungen redigiert)
--lang Sprache von Bericht und Konsole (fr, en, es, de, Standard: en)
--script-lang Sprache der Konsolen-Meldungen (fr, en, es, de)
--with-logs Speichert die Konsolenausgabe in einer Logdatei im Ausgabeverzeichnis
--quiet Stiller Konsolenmodus — nur Fehler und Endergebnis werden angezeigt
--create-rule Erstellt oder bearbeitet eine eigene Regel (vereinheitlichter interaktiver Assistent)
--custom-rules-match Prüft die Abdeckung custom rules ↔ custom fixtures
--with-tests Erkennt und führt automatisch die Unit-Tests des Projekts aus
--with-deps Führt einen Schwachstellen-Scan der Abhängigkeiten aus (pip-audit, npm audit)
--list-rules Listet alle Auditregeln nach Kategorie auf
--list-categories Listet die verfügbaren Auditkategorien
--list-projects Zeigt alle registrierten Projekte an

Beispiele:

# Vollständiges Audit
./staticcodeaudit-macos-arm64 /path/to/project

# Schnellmodus (nur Sicherheit)
./staticcodeaudit-macos-arm64 /path/to/project --quick

# CI/CD-Modus (SARIF-Export + Exit-Code 1 bei HIGH)
./staticcodeaudit-macos-arm64 /path/to/project --sarif --fail-on-high

# Mit Unit-Tests (erkennt automatisch pytest, jest, mvn etc.)
./staticcodeaudit-macos-arm64 /path/to/project --with-tests

# Mit Schwachstellen-Scan der Abhängigkeiten
./staticcodeaudit-macos-arm64 /path/to/project --with-deps

# Französischer Bericht
./staticcodeaudit-macos-arm64 /path/to/project --lang=fr

# Eigene Regel erstellen (interaktiver Assistent)
./staticcodeaudit-macos-arm64 /path/to/project --create-rule

# Anonymisierter Demo-Bericht
./staticcodeaudit-macos-arm64 /path/to/project --demo
# Projektverwaltung
./staticcodeaudit-macos-arm64 --list-projects                        # Alle Projekte auflisten
./staticcodeaudit-macos-arm64 /path/to/project --project-info        # Projektinformationen
./staticcodeaudit-macos-arm64 /path/to/project --init-fixtures       # Fixture-Verzeichnis anlegen
./staticcodeaudit-macos-arm64 /path/to/project --unregister          # Projekt deregistrieren

# Auditkategorien auflisten
./staticcodeaudit-macos-arm64 --list-categories
./staticcodeaudit-macos-arm64 --list-categories --script-lang=fr

# Alle Regeln nach Kategorie auflisten
./staticcodeaudit-macos-arm64 --list-rules
./staticcodeaudit-macos-arm64 /path/to/project --list-rules --script-lang=fr

Ausgabeformate

Jeder Audit-Lauf erzeugt standardmäßig HTML + JSON. Zusätzliche Formate sind auf Anfrage verfügbar:

Format Inhalt Zielgruppe Wie aktivieren
HTML Vollständiger visueller Bericht mit Diagrammen, Sidebar und Glossar Menschen (Manager, Entwickler) Standard
JSON Audit-Rohdaten (Findings, Scores, Metadaten) Automatisierung, Dashboards, CI/CD Standard
Demo HTML Anonymisierter Bericht (Pfade, Code, Lösungen redigiert) Interessenten, öffentliche Demos --demo
SARIF Findings im OASIS-Standardformat IDEs, GitHub Code Scanning, GitLab SAST --sarif
SBOM CycloneDX 1.5-Inventar der Abhängigkeiten Compliance, Supply-Chain-Sicherheit --sbom
# Erzeugt HTML + JSON + anonymisierten Demo-Bericht
./staticcodeaudit-macos-arm64 /path/to/project --demo

# Erzeugt HTML + JSON + SARIF
./staticcodeaudit-macos-arm64 /path/to/project --sarif

# Erzeugt HTML + JSON + SBOM
./staticcodeaudit-macos-arm64 /path/to/project --sbom

# Erzeugt alle Formate
./staticcodeaudit-macos-arm64 /path/to/project --sarif --sbom --demo

Demo-Modus: Das --demo-Flag erzeugt einen zusätzlichen anonymisierten Bericht (*-demo.html) neben dem vollständigen Bericht. Dateipfade werden durch path_to/{filename}:## ersetzt, der Quellcode wird ausgeblendet und Lösungen werden gekürzt. Ideal, um den Bericht mit Interessenten zu teilen oder als Beispiel zu veröffentlichen.


Projektverwaltung

Jedes auditierte Projekt wird durch eine eindeutige UUID identifiziert, die beim ersten Audit (--init) automatisch erzeugt wird. Dieses System ermöglicht es:

  • Unterscheiden von Projekten mit gleichem Verzeichnisnamen an unterschiedlichen Speicherorten
  • Isolieren projektspezifischer Fixtures
  • Verfolgen der Audit-Historie pro Projekt
  • Erkennen, ob ein Projekt verschoben wurde

Erstes Audit eines Projekts

# Die Binärdatei erkennt das Projekt automatisch und erzeugt eine UUID
./staticcodeaudit-macos-arm64 /path/to/my-project --init

# Ausgabe:
#  Automatische Erkennung des Projekts "my-project"...
#    Typ: Python + JavaScript
#    Pfade: app/, src/
#  Eindeutige Kennung erzeugt: a1b2c3d4
#  Konfiguration erzeugt: /path/to/my-project/audit.config.json
#  Projekt registriert

Registrierte Projekte auflisten

./staticcodeaudit-macos-arm64 --list-projects

# Ausgabe:
#  Registrierte Projekte (2):
#
# [a1b2c3d4] MyProject
#   Pfad: /path/to/my-project
#   Beschreibung: Beispiel-Webanwendung
#   Letztes Audit: 2026-02-25 10:30
#   Audits: 15 | Fixtures: 12 spezifische
#
# [b5c6d7e8] My-API
#   Pfad: /Users/dev/my-api
#   Letztes Audit: Niemals
#   Audits: 0 | Fixtures: nur generische

Detaillierte Projektinformationen

./staticcodeaudit-macos-arm64 /path/to/project --project-info

# Ausgabe:
#  Projektinformationen
#
# ID:           a1b2c3d4-e5f6-7890-abcd-ef1234567890
# Name:         MyProject
# Beschreibung: Beispiel-Webanwendung
# Version:      3.0
# Pfad:         /path/to/my-project
#
# Registriert:   2026-01-15 14:30
# Letztes Audit: 2026-02-25 10:30
# Audits gesamt: 15

Erkennung verschobener Projekte

Wird ein Projekt an einen anderen Speicherort verschoben, erkennt die Binärdatei die Änderung automatisch und aktualisiert den registrierten Pfad:

  Warnung: Pfad dieses Projekts hat sich geändert
    Vorher: /Users/dev/old-path/my-project
    Neu:    /Users/dev/new-path/my-project

    project.json aktualisiert

Ein Projekt deregistrieren

./staticcodeaudit-macos-arm64 /path/to/project --unregister

# Die internen Metadaten werden gelöscht
# Fixtures werden beibehalten (sofern vorhanden)
# Die audit.config.json des Projekts wird nicht verändert

Konfiguration

Die Datei audit.config.json wird beim ersten Audit automatisch im Stammverzeichnis des Zielprojekts erstellt.

brand

Branding-Konfiguration. Ermöglicht es, die Identität des Werkzeugs pro Projekt anzupassen (z. B. für Berichte an Kunden).

Feld Typ Beschreibung
tool_name string Im Bericht angezeigter Name des Werkzeugs (Standard: StaticCodeAudit)
company_name string Im Berichtsfuß angezeigter Firmenname (Standard: CodeFixture)
prefix string Präfix für Bericht- und Datendateien (Standard: SCA)
logo string|null Pfad zu einem Kunden-Logo (SVG, PNG, JPG). Ersetzt Favicon und Kopfsymbol im Bericht. Relativ zum Projekt-Root oder absolut.
{
  "brand": {
    "tool_name": "Acme Code Audit",
    "company_name": "Acme Corp",
    "prefix": "ACM",
    "logo": "assets/acme-logo.svg"
  }
}

Hinweis: Verweist brand.logo auf eine fehlende Datei oder ein nicht unterstütztes Format, fällt das Werkzeug mit einer Konsolen-Warnung auf seine Standardsymbole zurück. Das Logo wird als base64 in den HTML-Bericht eingebettet, damit dieser eigenständig bleibt.

project

Im Bericht angezeigte Projektinformationen.

Feld Typ Beschreibung
id string Eindeutige UUID, automatisch bei --init erzeugt (nicht ändern)
name string Projektname (automatisch aus dem Verzeichnisnamen erkannt)
version string Projektversion (automatisch aus package.json oder pyproject.toml erkannt)
description string Optionale Beschreibung
{
  "project": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "My Project",
    "version": "1.0.0",
    "description": "FastAPI + Vue.js web application"
  }
}

Wichtig: Die UUID (id) wird automatisch erzeugt und sollte nicht manuell verändert werden. Sie dient zur eindeutigen Identifikation des Projekts und zur Zuordnung der projektspezifischen Fixtures.

languages

ERFORDERLICH — Deklariert die Sprachen des Projekts. Steuert, welche Auditregeln ausgeführt werden.

Wert Gescannte Erweiterungen Aktivierte Regeln
python .py SQL Injection, Geheimnisse, Debug-Modus, eval, Deserialisierung, Krypto, Ausnahmen usw.
javascript .js, .jsx, .ts, .tsx, .mjs XSS, console.log, unsicherer RNG, clientseitige Authentifizierung, DOM, Inline-Style usw.
html .html, .htm, .xhtml, .shtml, .vue, .svelte, .ejs, .hbs, .njk, .jinja, .jinja2, .twig, .liquid, .mustache, .phtml, .erb, .jsp, .asp, .aspx, .cshtml Inline-SVG, ARIA, Schaltflächen ohne Beschriftung usw.
java .java SQL Injection, Deserialisierung, XXE, Krypto, CSRF, CORS, Command Injection usw.
csharp .cs SQL Injection, Deserialisierung, XXE, Krypto, LDAP, Command Injection usw.
php .php SQL Injection, Command Injection, File Inclusion, XSS, Deserialisierung usw.
yaml .yml, .yaml CI/CD-Sicherheit (GitHub Actions, GitLab CI)
{
  "languages": ["python", "javascript", "html", "java", "csharp", "php", "yaml"]
}

Wichtig: Wird eine Sprache nicht deklariert, werden die zugehörigen Regeln nicht ausgeführt. TypeScript-Dateien (.ts, .tsx) und JSX (.jsx, .mjs) werden als JavaScript behandelt — es gelten dieselben Regeln. Eine separate Sprache "typescript" ist nicht erforderlich.

paths

Konfiguration der Scan-Pfade.

Feld Typ Beschreibung
include array ERFORDERLICH – Zu scannende Verzeichnisse (relativ zum Projekt-Root)
exclude array Zu ignorierende Muster — unterstützt 3 Formate: glob (**/node_modules/**), Verzeichnisname (alembic/), Erweiterung (*.min.js)

Hinweis: paths.include wird für alle deklarierten Sprachen verwendet. Die Filterung der Dateitypen erfolgt anhand der Erweiterung. Während --init wird die Konfiguration automatisch mit den erkannten Pfaden erzeugt.

{
  "paths": {
    "include": [
      "app/",
      "src/",
      "UI-FRONT/js/",
      "UI-ADMIN/js/"
    ],
    "exclude": [
      "**/node_modules/**",
      "**/vendor/**",
      "**/__pycache__/**",
      "**/.venv/**",
      "*.min.js",
      "*.bundle.js"
    ]
  }
}

reports

Konfiguration der Berichtgenerierung.

Feld Typ Beschreibung
output_dir string Ausgabeverzeichnis des HTML-Berichts
history_dir string Speicherverzeichnis der JSON-Daten (Historie)
max_history integer Maximale Anzahl aufbewahrter Berichte
language string Sprache des HTML-Berichts (fr, en, es, de, Standard: en)
{
  "reports": {
    "output_dir": "docs/audit-reports",
    "history_dir": "docs/audit-reports/audit-datas",
    "max_history": 10,
    "language": "en"
  }
}

categories

Aktivierung und Gewichtung der Auditkategorien.

Feld Typ Beschreibung
enabled boolean Kategorie aktivieren/deaktivieren
weight integer Gewichtung der Kategorie (1-5) — wird zur Priorisierung der Findings verwendet
{
  "categories": {
    "security": { "enabled": true, "weight": 3 },
    "architecture": { "enabled": true, "weight": 2 },
    "ui": { "enabled": true, "weight": 1 },
    "ux": { "enabled": true, "weight": 1 },
    "maintenance": { "enabled": true, "weight": 1 }
  }
}

Empfohlene Gewichtungen:

  • security: 3 (kritisch)
  • architecture: 2 (wichtig)
  • ui, ux, maintenance: 1 (Standard)

rules

Konfiguration der Erkennungsregeln.

Feld Typ Beschreibung
disabled array Liste der zu ignorierenden Regeln
suppress array Liste der punktuell zu unterdrückenden Findings (Datei + Regel)
{
  "rules": {
    "disabled": [
      "TODO/FIXME",
      "console.log"
    ]
  }
}

Eine vollständige Liste der Regeln finden Sie in SUMMARY.md und im Bericht unter --list-rules.

fixtures

Fixture-Konfiguration zur Validierung der eigenen Regeln.

Feld Typ Beschreibung
include_generic boolean Wenn true, werden auch generische Fixtures als Fallback einbezogen
parallel boolean Parallele Ausführung der Fixtures aktivieren
parallel_workers integer Anzahl paralleler Worker
fixture_timeout integer Timeout pro Fixture (Sekunden)
{
  "fixtures": {
    "include_generic": true,
    "parallel": true,
    "parallel_workers": 4,
    "fixture_timeout": 30
  }
}

Eigene Fixtures hinzufügen:

./staticcodeaudit-macos-arm64 /path/to/project --init-fixtures

Anschließend Dateien ablegen unter:

  • custom-fixtures/vulnerable/ — Dateien, die erkannt werden sollen
  • custom-fixtures/clean/ — Dateien ohne Schwachstellen

thresholds

Schwellwerte für Health-Score und CI/CD-Integration.

Feld Typ Beschreibung
max_high integer Maximal tolerierte HIGH-Schwachstellen (0 = keine)
max_medium integer Maximal tolerierte MEDIUM-Schwachstellen
min_health integer Mindestens erforderlicher Health-Score (0-100)
health_good integer Schwellwert für einen "guten" Score (grün)
health_warning integer Schwellwert für einen "Warn"-Score (orange)
{
  "thresholds": {
    "max_high": 0,
    "max_medium": 10,
    "min_health": 80,
    "health_good": 90,
    "health_warning": 70
  }
}

Exit-Codes:

  • 0: Audit bestanden, Schwellwerte eingehalten
  • 1: Schwellwerte überschritten (HIGH-Schwachstellen oder unzureichender Score)
  • 2: Fehler bei der Fixture-Validierung

sla

SLA-Konfiguration nach Schweregrad (optional).

Feld Typ Beschreibung
enabled boolean SLA-Abschnitt im Bericht aktivieren (Standard: false)
rules object SLA-Regeln pro Schweregrad
{
  "sla": {
    "enabled": true,
    "rules": {
      "CRITICAL": { "delay": "4h", "escalation": "CTO" },
      "HIGH": { "delay": "24h", "escalation": "Tech Lead" },
      "MEDIUM": { "delay": "1 sprint", "escalation": "Team Lead" },
      "LOW": { "delay": "Backlog", "escalation": "Developer" }
    }
  }
}

retention

Konfiguration der Berichts-Aufbewahrung (optional). Steuert die automatische Bereinigung alter Berichte.

Feld Typ Beschreibung
mode string|null Bereinigungsmodus: "count", "days", "both" oder null (Standard: null = keine Bereinigung)
max_count integer Maximale Anzahl aufzubewahrender Berichte (Standard: 10, im Modus count oder both verwendet)
max_days integer Maximales Alter in Tagen (Standard: 90, im Modus days oder both verwendet)
{
  "retention": {
    "mode": "both",
    "max_count": 10,
    "max_days": 90
  }
}

Modi:

  • "count": Nur die N neuesten Berichte aufbewahren (max_count)
  • "days": Berichte älter als N Tage löschen (max_days)
  • "both": Beide Regeln anwenden (ein Bericht muss beide erfüllen, um aufbewahrt zu werden)
  • null: Keine automatische Bereinigung (Standard)

Sicherheit: Mindestens ein Bericht wird stets aufbewahrt. Berichte werden in HTML+JSON-Paaren gelöscht. Verwenden Sie --retention-dry-run, um eine Vorschau der zu löschenden Dateien zu erhalten, ohne sie tatsächlich zu entfernen.

Hinweis: Die bestehende Einstellung reports.max_history steuert nur die Anzeigelimits der Diagramme — sie löscht keine Dateien. Verwenden Sie retention für die tatsächliche Dateibereinigung.


Auditkategorien

Kategorie Beschreibung Beispielregeln
SECURITY Sicherheits-Schwachstellen XSS, SQL Injection, Geheimnisse, Deserialisierung, schwache Krypto, RNG, clientseitige Authentifizierung
ARCHITECTURE Architekturverletzungen Zu lange Dateien, N+1-Abfragen
UI Probleme der Oberfläche Barrierefreiheit (ARIA), Inline-SVG, Inline-Styles
UX Benutzererfahrung Nicht übersetzte Toasts, nicht persistente Fehler
MAINTENANCE Wartbarkeit des Codes TODO/FIXME, console.log, toter Code, veraltete APIs
CICD Sicherheit der CI/CD-Pipeline 18 Regeln: GHA-Injection, ungepinnte Actions, Geheimnisse in Logs, curl|bash, hartkodierte Zugangsdaten, docker :latest, GitLab allow_failure auf SAST
DEPENDENCIES Schwachstellen der Abhängigkeiten CVE-Scanning, ungepinnte Versionen, nicht konforme Lizenzen

Eine vollständige Aufschlüsselung aller Regeln nach Kategorie, mit Schweregraden und zugeordneten Standards (OWASP, CWE, WCAG, ASVS, ISO 27001, NIST CSF), finden Sie in SUMMARY.md.


Berichte

Berichte werden in <project>/docs/audit-reports/ erzeugt:

docs/audit-reports/
  SCA-REPORT-2026-02-22-15-30.html    # Interaktiver HTML-Bericht
  audit-datas/
    SCA-DATA-2026-02-22-15-30.json    # JSON-Daten (Historie)

Jeder Bericht ist eine eigenständige HTML-Datei — sämtliche CSS, JavaScript, Diagramme und Favicons sind inline eingebettet (keine externen Abhängigkeiten). Öffnen Sie ihn in einem beliebigen Browser, teilen oder archivieren Sie ihn.

Der HTML-Bericht enthält:

  • Projektinformationen (Name, Version, Beschreibung, UUID, Pfad)
  • Audit-Parameter: Sprachen, gescannte Erweiterungen pro Sprache, include/exclude-Pfade, Kategorien
  • Globaler Health-Score (logarithmisch, sicherheitsgewichtet, LOC-normiert) mit visuellem Indikator
  • Aufschlüsselung nach Schweregrad (CRITICAL, HIGH, MEDIUM, LOW, INFO)
  • Aufschlüsselung nach Kategorie
  • Detaillierte Liste der Findings mit Quellcode
  • Git-Committer-Zuordnung pro Finding (wenn --git-blame aktiviert ist)
  • Vergleich mit dem vorherigen Audit (neu/behoben)
  • Heatmap der problematischsten Dateien
  • ISO-27001-Compliance-Matrix (Annex A, 93 Kontrollen)
  • Glossar mit 36 Akronymen

CI/CD-Integration

# GitHub Actions
- name: Run Audit
  run: |
    ./staticcodeaudit-linux-x64 . --fail-on-high --sarif
# GitLab CI
audit:
  script:
    - ./staticcodeaudit-linux-x64 . --fail-on-high --sarif
  allow_failure: false

Die Binärdatei liefert einen Exit-Code ungleich Null, wenn:

  • HIGH-Schwachstellen erkannt werden (--fail-on-high oder max_high: 0)
  • Der Health-Score unter dem Schwellwert liegt (min_health)

Internationalisierung (i18n)

Das Audit-Werkzeug unterstützt vier Sprachen: Französisch (fr), Englisch (en), Spanisch (es) und Deutsch (de).

Zwei unabhängige Konfigurationen:

Konfiguration Beschreibung Standard
Skript-Sprache Konsolen-Meldungen (Security Scan..., Report generated...) en
Bericht-Sprache HTML-Inhalte (Titel, Beschriftungen, Bildunterschriften) en

Skript-Sprache (CLI)

Die Sprache der Konsolen-Meldungen wird über die Option --script-lang konfiguriert:

# Meldungen auf Englisch (Standard)
./staticcodeaudit-macos-arm64 /path/to/project

# Meldungen auf Französisch
./staticcodeaudit-macos-arm64 /path/to/project --script-lang=fr

# Meldungen auf Spanisch
./staticcodeaudit-macos-arm64 /path/to/project --script-lang=es

# Meldungen auf Deutsch
./staticcodeaudit-macos-arm64 /path/to/project --script-lang=de

Bericht-Sprache (audit.config.json)

Die Sprache des erzeugten HTML-Berichts wird in der audit.config.json des Projekts konfiguriert:

{
  "reports": {
    "output_dir": "docs/audit-reports",
    "history_dir": "docs/audit-reports/audit-datas",
    "max_history": 10,
    "language": "es"
  }
}

Unterstützte Werte: fr (Französisch), en (Englisch), es (Spanisch), de (Deutsch)

Der Bericht zeigt im Kopf ein Sprach-Badge an (z. B. Francais, English, Espanol, Deutsch).

Fallback: Wird eine nicht unterstützte Sprache angegeben, fällt das Werkzeug automatisch auf Englisch (en) zurück.

Kombinationsbeispiele

# Skript EN + Bericht EN (Standard)
./staticcodeaudit-macos-arm64 /path/to/project

# Skript FR + Bericht EN
./staticcodeaudit-macos-arm64 /path/to/project --script-lang=fr

# Skript EN + Bericht FR ("language": "fr" in audit.config.json setzen)
./staticcodeaudit-macos-arm64 /path/to/project

# Skript FR + Bericht FR
./staticcodeaudit-macos-arm64 /path/to/project --script-lang=fr
# (mit audit.config.json, die "language": "fr" enthält)

Eigene Regeln

StaticCodeAudit ermöglicht es Ihnen, eigene Erkennungsregeln über einen interaktiven Assistenten anzulegen.

Schnellstart

./staticcodeaudit-macos-arm64 . --create-rule        # Eine eigene Regel erstellen oder bearbeiten
./staticcodeaudit-macos-arm64 . --custom-rules-match # Abdeckung prüfen (Regeln ↔ Fixtures)

Der interaktive Assistent führt Sie in 7 Schritten: 1. Name, Sprache, Kategorie, Schweregrad — mit Duplikatsprüfung (Name + Pattern) 2. Zu erkennendes Pattern (Text oder Regex) + was es neutralisiert (optional) 3. Risikobeschreibung — EN erforderlich, FR/ES/DE optional 4. Lösung — EN erforderlich, FR/ES/DE optional 5. Nutzen — optional 6. Code-Beispiel vorher/nachher (fix_before + fix_after) — optional 7. Vorschau → Validierung → Schreiben in custom-rules/{lang}/{cat}/{rule_id}.sca

Existiert bereits eine Regel mit demselben Namen, schlägt der Assistent vor, diese zu bearbeiten (mit aktuellen Werten vorausgefüllt).

Speicherort

Eigene Regeln werden im Verzeichnis custom-rules/ Ihres Projekts gespeichert (neben der Binärdatei oder im Stammverzeichnis des Projekts) und werden bei Updates der Binärdatei niemals überschrieben.

custom-rules/
  python/
    security/
      my_custom_rule.sca
  javascript/
    maintenance/
      no_legacy_api.sca

Eine vollständige Spezifikation des .sca-Formats finden Sie in CUSTOM-RULES-SPEC.md.

Lizenz-Limits

Tier Maximale Anzahl eigener Regeln
Solo 20
Team 100
Enterprise Unbegrenzt

Lizenz

Kommerzielle Lizenz CodeFixture. Die Bedingungen entnehmen Sie bitte Ihrer Lizenzvereinbarung.