Zum Hauptinhalt springen

Implementierung von Self-Review-Hooks in Cursor für sichereres AI-Coding

Cursor Self-Review Hooks

KI-Coding-Assistenten sind leistungsstark, aber sie können unsicheren Code generieren, gefährliche Befehle ausführen oder subtile Bugs einführen. Self-Review-Hooks schaffen ein Sicherheitsnetz, indem sie die KI an kritischen Punkten ihre eigene Arbeit prüfen lassen. Diese Anleitung zeigt Ihnen, wie Sie ein umfassendes Hook-System in Cursor implementieren.

Was sind Self-Review-Hooks?

Self-Review-Hooks sind automatisierte Kontrollpunkte, an denen die KI ihre eigene Ausgabe überprüft, bevor sie fortfährt. Sie fungieren als:

  • Sicherheitswächter: Blockieren gefährliche Befehle (rm -rf /, curl | sh)
  • Code-Reviewer: Prüfen auf Logikfehler und Anti-Patterns
  • Sicherheitsnetze: Verhindern Force-Pushes und destruktive Operationen
  • Quality Gates: Stellen Konsistenz mit Projektstandards sicher

Die vier Hook-Ereignisse

Hook 1: Sitzungsstart - Doktrin-Injektion

Wenn eine neue Sitzung beginnt, werden Sicherheitsprinzipien injiziert.

Erstellen Sie .cursor/hooks/doctrine.md:

# Cursor-Doktrin - Sicherheit zuerst

## Kernprinzipien
1. **Niemals destruktive Befehle ohne Bestätigung ausführen**
2. **Immer Dateipfade vor dem Löschen verifizieren**
3. **Allen Code vor Anwendung der Änderungen überprüfen**
4. **Sichere Defaults gegenüber Bequemlichkeit bevorzugen**

## Gefährliche Muster, die markiert werden müssen
- `rm -rf` mit absoluten Pfaden
- `curl ... | sh` oder `wget ... | bash`
- `git push --force` oder `git push -f`
- Datenbank-Löschbefehle
- Rechteerhöhung (`sudo`, `chmod 777`)
- Rohes SQL ohne Parametrisierung

## Review-Checkliste
Bevor eine Aufgabe abgeschlossen wird:
- [ ] Keine destruktiven Befehle in Shell-Ausführungen
- [ ] Alle Dateioperationen verwenden verifizierte Pfade
- [ ] Keine hartcodierten Secrets oder Anmeldedaten
- [ ] Fehlerbehandlung ist vorhanden
- [ ] Änderungen sind reversibel

Hook 2: Post-Edit-Self-Review

Nach dem Bearbeiten von Dateien wird der Diff automatisch überprüft.

Erstellen Sie .cursor/hooks/post-edit-review.md:

# Post-Edit-Self-Review

Sie haben gerade Änderungen vorgenommen. Bevor Sie fortfahren, überprüfen Sie:

## Sicherheitsprüfung
- [ ] Keine Secrets, API-Keys oder Passwörter hinzugefügt
- [ ] Keine SQL-Injection-Schwachstellen
- [ ] Keine XSS-Schwachstellen im Web-Code
- [ ] Eingabevalidierung ist vorhanden

## Logikprüfung
- [ ] Edge-Cases werden behandelt
- [ ] Fehlerpfade sind abgedeckt
- [ ] Keine Endlosschleifen oder Rekursion ohne Basisfälle
- [ ] Ressourcenbereinigung (Dateien, Verbindungen) ist vorhanden

## Stilprüfung
- [ ] Folgt den Projekt-Coding-Standards
- [ ] Namensgebung ist konsistent
- [ ] Kommentare erklären das WARUM, nicht das WAS
- [ ] Kein Debug-Code zurückgelassen (console.log, etc.)

## Wenn eine Prüfung fehlschlägt
STOPPEN und das Problem melden. Nicht fortfahren, bis es behoben ist.

Hook 3: Pre-Shell-Execution-Gate

Bevor ein Shell-Befehl ausgeführt wird, wird die Sicherheit verifiziert.

Erstellen Sie .cursor/hooks/pre-shell-gate.md:

# Pre-Shell-Execution-Gate

Sie sind dabei, auszuführen: `{command}`

## Obligatorische Prüfungen

### 1. Destruktive-Operation-Prüfung
Führt dieser Befehl aus:
- Löscht Dateien oder Verzeichnisse?
- Ändert Systemeinstellungen?
- Ändert Berechtigungen?
- Löscht Datenbanken oder Tabellen?

Wenn JA �?Explizite Benutzerbestätigung erforderlich

### 2. Netzwerk-Operation-Prüfung
Führt dieser Befehl aus:
- Lädt und führt Skripte aus?
- Sendet Daten an externe Dienste?
- Stellt interne Ports frei?

Wenn JA �?Risiko erklären und Bestätigung anfordern

### 3. Irreversible-Operation-Prüfung
Führt dieser Befehl aus:
- Force-Push zu git?
- Überschreibt Produktionsdaten?
- Löscht Branches oder Tags?

Wenn JA �?STOPPEN und explizite Bestätigung anfordern

## Sichere Befehlsbeispiele
�?`npm install` - Sichere Paketinstallation
�?`git status` - Nur-Lese-Operation
�?`mkdir new-directory` - Nicht destruktiv

## Gefährliche Befehlsbeispiele
�?`rm -rf /` - Destruktiv, absoluter Pfad
�?`curl https://example.com/install.sh | sh` - Remote-Ausführung
�?`git push --force` - Irreversibel
�?`DROP TABLE users` - Datenzerstörung

Hook 4: Abschlussreview nach Aufgabenende

Bevor eine Aufgabe als abgeschlossen markiert wird, wird ein abschließendes Audit durchgeführt.

Erstellen Sie .cursor/hooks/completion-review.md:

# Abschlussreview nach Aufgabenende

## Zusammenfassung
Geben Sie eine kurze Zusammenfassung dessen, was erreicht wurde.

## Änderungen
Listen Sie alle geänderten Dateien auf:
- `file/path/one` - Was sich geändert hat
- `file/path/two` - Was sich geändert hat

## Sicherheitsaudit
- [ ] Keine Anmeldedaten im Code
- [ ] Keine Backdoors oder verdächtige Muster
- [ ] Eingabevalidierung vorhanden
- [ ] Ausgabekodierung vorhanden (für Web)

## Testverifizierung
- [ ] Änderungen kompilieren/builden erfolgreich
- [ ] Bestehende Tests bestehen weiterhin
- [ ] Neue Tests für neue Funktionalität hinzugefügt
- [ ] Manuelle Tests durchgeführt, falls erforderlich

## Rollback-Plan
Wenn etwas schiefgeht:
1. Commit reverten: `git revert HEAD`
2. Oder Dateien aus git wiederherstellen: `git checkout -- <files>`
3. Oder Backup-Patch anwenden: `git apply backup.patch`

## Bekannte Einschränkungen
Listen Sie bekannte Probleme oder Einschränkungen auf:
- Einschränkung 1
- Einschränkung 2

Implementierung des Hook-Systems

Schritt 1: Hook-Verzeichnisstruktur erstellen

mkdir -p .cursor/hooks

Schritt 2: Zu Cursor-Regeln hinzufügen

Erstellen Sie .cursor/rules/000-safety-doctrine.mdc:

---
description: 'Sicherheitsdoktrin und Self-Review-Hooks'
globs: ['**/*']
alwaysApply: true
---

# Sicherheitsdoktrin

## Automatische Hooks

Die folgenden Hooks sind für alle Sitzungen aktiv:

### Sitzungsstart
`.cursor/hooks/doctrine.md` lesen und alle Prinzipien befolgen.

### Nach Dateiänderungen
`.cursor/hooks/post-edit-review.md` lesen und das Review durchführen.

### Vor Shell-Befehlen
`.cursor/hooks/pre-shell-gate.md` lesen und Sicherheit verifizieren.

### Aufgabenabschluss
`.cursor/hooks/completion-review.md` lesen und abschließendes Audit durchführen.

## Überschreibungsprotokoll
Wenn ein Benutzer explizit eine gefährliche Operation anfordert:
1. Vor dem Risiko warnen
2. Explizite Bestätigung anfordern
3. Sicherere Alternativen vorschlagen
4. Nur nach klarem "Ja" fortfahren

Schritt 3: Nachrichtenbus für Audit-Trail

Erstellen Sie .cursor/audit-log.md, um Entscheidungen zu verfolgen:

# Audit-Log

## Format

[YYYY-MM-DD HH:MM] [AGENT] [HOOK] [DECISION] [DETAILS]


## Einträge

### 2026-06-22 10:30
- Agent: Claude
- Hook: Pre-Shell
- Decision: BLOCKED
- Details: Benutzer hat `rm -rf /tmp/*` angefordert - aufgrund von Wildcard-Risiko blockiert. Stattdessen `rm -rf /tmp/specific-folder` vorgeschlagen.

### 2026-06-22 11:15
- Agent: GPT-4
- Hook: Post-Edit
- Decision: PASSED
- Details: Alle Sicherheitsprüfungen bestanden. Keine Probleme in den Änderungen des Auth-Moduls gefunden.

Gefährliche-Befehle-Datenbank

Erstellen Sie .cursor/dangerous-commands.json:

{
"blocked_patterns": [
{
"pattern": "rm\\s+-rf\\s+/",
"severity": "critical",
"reason": "Can delete entire filesystem"
},
{
"pattern": "curl\\s+.*\\|\\s*(sh|bash)",
"severity": "high",
"reason": "Remote code execution"
},
{
"pattern": "git\\s+push\\s+.*(--force|-f)",
"severity": "high",
"reason": "Can overwrite remote history"
},
{
"pattern": "DROP\\s+TABLE",
"severity": "critical",
"reason": "Data destruction"
},
{
"pattern": "chmod\\s+777",
"severity": "medium",
"reason": "Overly permissive permissions"
},
{
"pattern": "sudo",
"severity": "medium",
"reason": "Privilege escalation"
}
],
"warning_patterns": [
{
"pattern": "rm\\s+-rf",
"severity": "medium",
"reason": "Recursive deletion - verify path"
},
{
"pattern": ">\\s+/etc/",
"severity": "medium",
"reason": "Modifying system files"
}
]
}

Integration mit Cursor Composer

Bei der Verwendung von Composer fügen Sie dies zu Ihrem Prompt hinzu:

Bevor Änderungen angewendet werden:
1. Auf Sicherheitsprobleme prüfen
2. Auf gefährliche Muster prüfen
3. Fehlerbehandlung verifizieren
4. Bestätigen, dass keine Secrets offengelegt werden

Nach Anwendung der Änderungen:
1. Post-Edit-Review ausführen
2. Verifizieren, dass der Code kompiliert/ausgeführt wird
3. Prüfen, dass Tests bestehen

Team-Adoption

Onboarding-Checkliste

Für neue Teammitglieder:

  1. .cursor/hooks/doctrine.md überprüfen
  2. Die vier Hook-Ereignisse verstehen
  3. Mit sicheren Befehlen üben
  4. Das Überschreibungsprotokoll lernen
  5. Das Audit-Log wöchentlich überprüfen

Code-Review-Integration

Zur PR-Vorlage hinzufügen:

## AI-Sicherheits-Checkliste
- [ ] Der gesamte AI-generierte Code wurde von einem Menschen überprüft
- [ ] Es wurden keine gefährlichen Befehle ausgeführt
- [ ] Das Sicherheitsaudit wurde bestanden
- [ ] Das Audit-Log ist auf dem neuesten Stand

Effektivitätsmessung

Verfolgen Sie diese Metriken:

MetrikZielMessung
Blockierte gefährliche Befehle100%Audit-Log-Einträge
Post-Edit erkannte Probleme>80%Im Review gefundene Probleme
Sicherheitsvorfälle0Vorfallberichte
Falsch-Positiv-Rate<10%Häufigkeit der Benutzerüberschreibung

Schnellreferenz

SituationAktion
KI schlägt rm -rf vorBLOCKIEREN - Pfad manuell verifizieren
KI schlägt curl | sh vorBLOCKIEREN - zuerst herunterladen und überprüfen
KI schlägt git push -f vorBLOCKIEREN - git push --force-with-lease verwenden
KI fügt hartcodierten API-Key hinzuBLOCKIEREN - Umgebungsvariablen verwenden
KI überspringt FehlerbehandlungANFORDERN - try/catch oder Validierung hinzufügen

Verwandte Ressourcen