FixVibe

// docs / security guides / claude code checklist

Claude Code Security-Checkliste: 26 Punkte

Claude Code (Anthropics CLI-Agent) generiert ganze Codebasen über Slash-Befehle, verwaltet das Refactoring mehrerer Dateien und liest/writes Dateien über Bash. Diese Checkliste zielt auf die spezifischen Risiken von Claude Code ab: keine Standardsicherheitsrichtlinien, selten hinzugefügte Ratenbegrenzung, <code>.claude/CLAUDE.md</code> als Ihre Sicherheitsleitplankendatei und das Risiko der Übergabe von <code>.env</code> oder zwischengespeicherten Tokens. 26 Elemente zu Geheimnissen, Datenbank, Authentifizierung, Headern, Bereitstellung und Claude Code-spezifischen Fallstricken.

PRE = Vorbereiten (Prüfen Sie Ihre Quelle). DEPLOY = zum Zeitpunkt der Bereitstellung. POST = Überprüfung nach der Bereitstellung. Artikel verweisen auf FixVibe Prüf-IDs im category.check-id-Format, sofern relevant.

Geheimnisse und API Schlüssel (5 Artikel)

Claude Code liest ganze Quellbäume und gibt ganze Dateien aus. Geheimnisse in Ihrem Kontext werden zu Geheimnissen in der Ausgabe.

  1. PRE — Create .claude/CLAUDE.md with security policies. Hinzufügen: „Security Rules: Integrieren Sie niemals service_role Schlüssel in Client-Bundles. Leiten Sie vertrauliche Vorgänge immer über reine Server-Endpunkte weiter. Stellen Sie sicher, dass NEXT_PUBLIC_* Umgebungsvariablen nur sichere Werte enthalten (keine Schlüssel, keine Token).“ Claude Code lautet .claude/CLAUDE.md für die Projektanleitung.
  2. PRE — Ensure .env.local is in .gitignore. Claude Code kann während einer Umgestaltung versehentlich .env.local festschreiben. Führen Sie git ls-files .env* aus, um zu überprüfen, was verfolgt wird. Wenn .env.local vorhanden ist, wird es angezeigt.
  3. PRE — Audit generated API routes for env-var verification. Claude Code vergisst manchmal zu überprüfen, ob process.env.SECRET serverseitig existiert, bevor es verwendet wird. Routen sollten schnell ausfallen, wenn eine Umgebungsvariable fehlt, und nicht auf einen Standardwert zurückgreifen.
  4. PRE — Check the .claude cache directory. Claude Code speichert den Konversationskontext in .claude/cache oder .claude/history zwischen. Diese Dateien sollten nicht festgeschrieben werden. Fügen Sie .claude/ bis .gitignore hinzu.
  5. POST — Run secrets.browser-storage on the deployed app. Wenn Claude Code einen Schlüssel eingefügt hat, wird der passive Scan ihn im gerenderten Bundle finden.

Datenbankzugriffskontrolle (4 Artikel)

Claude Code eignet sich hervorragend zum Generieren von Schemata, aber RLS-Richtlinien erfordern explizite Anweisungen.

  1. PRE — Instruct Claude Code on RLS in .claude/CLAUDE.md. Hinzufügen: „Jede Migration muss ALTER TABLE ... ENABLE ROW LEVEL SECURITY und FORCE ROW LEVEL SECURITY enthalten. Jede Richtlinie muss auth.uid() des Benutzers validieren.“
  2. PRE — Review generated migrations for FORCE ROW LEVEL SECURITY. Claude Code generiert möglicherweise ENABLE, vergessen Sie jedoch FORCE. Ohne FORCE umgehen Tabellenbesitzer (der Migrationsläufer) RLS. Fügen Sie es manuell hinzu, falls es fehlt.
  3. DEPLOY — Test RLS enforcement after deploy. Öffnen Sie Supabase Studio, wählen Sie eine Tabelle aus und bestätigen Sie, dass RLS der Umschalter ON ist. Wenn bei der Migration von Claude Code ENABLE ohne FORCE verwendet wurde, wird auf dem Schalter ON angezeigt, die Durchsetzung ist jedoch unvollständig.
  4. POST — Run the baas.supabase-rls active check. Es wird versucht, mit der Anon-Taste zu schreiben. Wenn dies gelingt, ist RLS unvollständig. Fügen Sie FORCE zur Migration hinzu und stellen Sie es erneut bereit.

Authentifizierung und Sitzungen (4 Elemente)

Claude Code generiert Authentifizierungsflüsse gut, fügt aber nicht automatisch eine Ratenbegrenzung hinzu und überprüft nicht alle Token-Ansprüche serverseitig.

  1. PRE — Mandate server-only auth verification in .claude/CLAUDE.md. Hinzufügen: „Jede API-Route, die Daten verändert, muss den Benutzer mit await supabase.auth.getUser() auf dem Server verifizieren. Vertrauen Sie niemals getSession() oder dem Benutzer ID aus dem Anforderungstext.“
  2. PRE — Check generated auth handlers for token expiry. Magic-Link- und Passwort-Reset-Tokens benötigen servererzwungenes expires_at. Fragen Sie Claude Code: „Fügen Sie eine Prüfung hinzu, die Token ablehnt, die älter als 1 Stunde sind.“
  3. PRE — Verify sign-in redirect guards. Die Parameterumleitung next muss mit / und nicht mit // beginnen. Zu .claude/CLAUDE.md hinzufügen: „Validieren Sie den Parameter next: muss mit / beginnen, ablehnen, wenn er mit // beginnt oder ein Protokoll enthält.“
  4. POST — Test logout clears cookies. Anmelden, abmelden, Anwendung → Cookies überprüfen. Das Sitzungscookie muss gelöscht werden. Wenn es weiterhin besteht, zerstört der Abmeldeendpunkt den Status nicht.

HTTP Header und CSP (3 Elemente)

Claude Code generiert standardmäßig keine Middleware, es sei denn, Sie fragen danach.

  1. PRE — Add middleware request to .claude/CLAUDE.md. Include: „Generieren Sie src/middleware.ts mit Content-Security-Policy unter Verwendung einer Nonce pro Anfrage, HSTS, X-Frame-Options und X-Content-Type-Options-Headern.“ Bitten Sie dann Claude Code, es umzusetzen.
  2. PRE — Verify src/middleware.ts exists and has CSP. Beim Layout Next.js src/ muss sich die Middleware bei src/middleware.ts befinden, nicht im Projektstamm. Stellen Sie sicher, dass der CSP-Header 'strict-dynamic' und eine Nonce enthält.
  3. POST — Run headers.security-headers on the deployed URL. Die Prüfung meldet fehlende Header und schlägt Korrekturen für Ihre Plattform vor.

Einsatzhygiene (4 Artikel)

Claude Code konfiguriert Ihre Bereitstellungsplattform nicht – das liegt in Ihrer Verantwortung, ist aber eine Überprüfung wert.

  1. DEPLOY — Scope env vars per environment in Vercel (or equivalent). Einstellungen → Umgebungsvariablen → Jedes Geheimnis nur Production zuweisen. Teilen Sie sk_live_* niemals mit Vorschau oder Entwicklung.
  2. DEPLOY — Audit your CI workflow for secret echo. Wenn GitHub Actions oder ein anderes CI irgendwo echo $SECRET hat, entfernen Sie es. Build-Protokolle werden archiviert; Geheimnisse in Protokollen sind gefährdet.
  3. DEPLOY — Prefer platform-native secret storage. Vercels Einstellungen → Umgebungsvariablen ist verschlüsselt; GitHub Aktionsgeheimnisse sind besser als nichts, passen aber nicht zum plattformeigenen Speicher.
  4. POST — Rotate any key that reached a public build. Wenn ein Schlüssel gerade Sekunden lang in einer Vercel Vorschau URL oder einem öffentlichen Artefakt angezeigt wird, ist er kompromittiert. Sofort drehen.

Claude Code-spezifische Fallstricke (5 Elemente)

Muster, die für die Architektur und Arbeitsabläufe von Claude Code einzigartig sind:

  1. Claude Code forks work into subagents. Bei großen Aufgaben kann Claude Code mehrere Subagenteninstanzen erzeugen, jede mit teilweisem Codebasiskontext. Wenn ein Subagent ein geheimnissicheres Muster halluziniert, was ein anderer nicht tut, kommt es zu Inkonsistenzen. Überprüfen Sie den endgültigen Unterschied sorgfältig.
  2. Bash operations are unverified. Claude Code führt Bash-Befehle direkt aus. git commit -m "fix" ist praktisch, aber wenn das Arbeitsverzeichnis eine .env-Datei hat und diese in einem Glob enthalten ist, erfolgt ein Commit. Überprüfen Sie immer git diff --cached, bevor Claude Code ein Commit durchführt.
  3. Context window boundaries create gaps. Wenn Ihre Codebasis groß ist, kann sich der Kontext von Claude Code auf mehrere Fenster verteilen. Die .env.local-Behandlung eines Fensters kann sich von der eines anderen unterscheiden. Setzen Sie die Richtlinie in .claude/CLAUDE.md durch und überprüfen Sie die Ausgabe.
  4. Rate-limiting is almost never added without asking. Claude Code generiert funktionierende CRUD, enthält jedoch selten ratenbegrenzende Header oder exponentielle Backoff-Logik. Bitten Sie ausdrücklich in .claude/CLAUDE.md darum.
  5. .claude/CLAUDE.md is read but not enforced. Claude Code liest Ihr .claude/CLAUDE.md als Hinweis, nicht als Einschränkung. Wenn der Hinweis mit der Aufgabe in Konflikt steht, kann Claude Code ihn ignorieren. Überprüfen Sie immer die Ausgabe.

Nächste Schritte

Überprüfen Sie general vibe coding security checklist auf 44 werkzeugübergreifende Elemente und sehen Sie sich dann step-by-step hardening für Bereitstellungszeitmuster an. Wenn Sie auch Cursor verwenden, sehen Sie sich Cursor security checklist an.

// deine App scannen

Genug gelesen. Finde die Lücken in deiner App.

Eine URL einfügen — FixVibe führt jeden passiven Check aus diesem Guide plus 200 weitere in unter einer Minute aus. Kostenlos, ohne Installation, ohne Karte.

  • Free-Tier — 3 Scans / Monat, ohne Karte.
  • Passive Scans gegen jede URL — keine Domain-Verifizierung nötig.
  • Abgestimmt auf Cursor, Claude Code, Lovable, Bolt, v0, Replit.
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
Kostenlosen Scan starten

keine Anmeldung nötig

Claude Code Security-Checkliste: 26 Punkte — Docs · FixVibe