StaticCodeAudit
by CodeFixture
Eigenständiges Werkzeug für Compliance-, Sicherheits- und Codequalitätsaudits von Webprojekten (Python, JavaScript/TypeScript, HTML, Java, C#, PHP, YAML).
Inhaltsverzeichnis
- Installation
- Schnellstart
- CLI-Optionen
- Projektverwaltung
- Konfiguration
- Auditkategorien
- Berichte
- CI/CD-Integration
- Internationalisierung (i18n)
- Eigene Regeln
- Lizenz
Installation
StaticCodeAudit wird als eigenständige Binärdatei pro Plattform geliefert. Keine externe Abhängigkeit erforderlich, kein Netzwerkzugriff zur Laufzeit.
-
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
- macOS Apple Silicon:
-
Entpacken Sie das Archiv in das Verzeichnis Ihrer Wahl.
-
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 durchpath_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.logoauf 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.includewird für alle deklarierten Sprachen verwendet. Die Filterung der Dateitypen erfolgt anhand der Erweiterung. Während--initwird 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 sollencustom-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 eingehalten1: 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_historysteuert nur die Anzeigelimits der Diagramme — sie löscht keine Dateien. Verwenden Sieretentionfü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-blameaktiviert 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-highodermax_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.