FixVibe

// docs / security guides / claude code checklist

Checklist sicurezza Claude Code: 26 voci

Claude Code (l'agente CLI di Anthropic) genera intere basi di codice tramite comandi slash, gestisce il refactoring multi-file e legge i file/writes tramite bash. Questa lista di controllo mira ai rischi specifici di Claude Code: nessuna politica di sicurezza predefinita, limitazione della velocità aggiunta raramente, <code>.claude/CLAUDE.md</code> come file di protezione della sicurezza e il rischio di impegnare <code>.env</code> o token memorizzati nella cache. 26 elementi tra segreti, database, autenticazione, intestazioni, distribuzione e trucchi specifici di Claude Code.

PRE = pre-distribuzione (controlla la tua origine). DEPLOY = al momento della distribuzione. POST = verifica post-distribuzione. Gli elementi fanno riferimento a FixVibe, controlla gli ID nel modulo category.check-id, ove pertinente.

Segreti e chiavi API (5 articoli)

Claude Code legge interi alberi di sorgenti e restituisce interi file. I segreti nel tuo contesto diventano segreti nell'output.

  1. PRE — Create .claude/CLAUDE.md with security policies. Aggiungere: "Security Rules: Non incorporare mai le chiavi service_role nei bundle client. Instradare sempre le operazioni sensibili attraverso endpoint solo server. Verificare che le variabili env NEXT_PUBLIC_* contengano solo valori sicuri (nessuna chiave, nessun token)." Claude Code legge .claude/CLAUDE.md per indicazioni sul progetto.
  2. PRE — Ensure .env.local is in .gitignore. Claude Code potrebbe commettere accidentalmente .env.local durante un refactoring. Esegui git ls-files .env* per verificare cosa viene tracciato. Se .env.local è presente, viene esposto.
  3. PRE — Audit generated API routes for env-var verification. Claude Code a volte dimentica di verificare che process.env.SECRET esista lato server prima di utilizzarlo. Le rotte dovrebbero fallire rapidamente se manca una variabile env, non passare a un valore predefinito.
  4. PRE — Check the .claude cache directory. Claude Code memorizza nella cache il contesto della conversazione in .claude/cache o .claude/history. Questi file non devono essere sottoposti a commit. Aggiungi .claude/ a .gitignore.
  5. POST — Run secrets.browser-storage on the deployed app. Se Claude Code ha inserito una chiave, la scansione passiva la troverà nel bundle renderizzato.

Controllo dell'accesso al database (4 articoli)

Claude Code è eccellente per generare schemi, ma le policy RLS necessitano di istruzioni esplicite.

  1. PRE — Instruct Claude Code on RLS in .claude/CLAUDE.md. Aggiungere: "Ogni migrazione deve includere ALTER TABLE ... ENABLE ROW LEVEL SECURITY e FORCE ROW LEVEL SECURITY. Ogni policy deve convalidare auth.uid() dell'utente."
  2. PRE — Review generated migrations for FORCE ROW LEVEL SECURITY. Claude Code può generare ENABLE ma dimentica FORCE. Senza FORCE, i proprietari delle tabelle (il corridore della migrazione) ignorano RLS. Aggiungilo manualmente se mancante.
  3. DEPLOY — Test RLS enforcement after deploy. Apri Supabase Studio, scegli un tavolo, conferma che RLS l'interruttore è ON. Se la migrazione di Claude Code ha utilizzato ENABLE senza FORCE, l'interruttore indicherà ON ma l'applicazione è incompleta.
  4. POST — Run the baas.supabase-rls active check. Tenta una scrittura con la chiave anon. Se ha esito positivo, RLS è incompleto. Aggiungi FORCE alla migrazione e ridistribuisci.

Autenticazione e sessioni (4 articoli)

Claude Code genera bene i flussi di autenticazione ma non aggiunge automaticamente limiti di velocità né verifica tutte le attestazioni di token sul lato server.

  1. PRE — Mandate server-only auth verification in .claude/CLAUDE.md. Aggiungere: "Ogni percorso API che modifica i dati deve verificare l'utente con await supabase.auth.getUser() sul server. Non fidarsi mai di getSession() o dell'utente ID dal corpo della richiesta."
  2. PRE — Check generated auth handlers for token expiry. I token Magic-link e di reimpostazione della password richiedono l'applicazione del server expires_at. Chiedi a Claude Code: "Aggiungi un controllo che rifiuti i token più vecchi di 1 ora."
  3. PRE — Verify sign-in redirect guards. Il reindirizzamento param next deve iniziare con / e non //. Aggiungere a .claude/CLAUDE.md: "Convalida il parametro next: deve iniziare con /, rifiutare se inizia con // o contiene un protocollo."
  4. POST — Test logout clears cookies. Accedi, esci, controlla l'applicazione → Cookie. Il cookie di sessione deve essere cancellato. Se persiste, l'endpoint di logout non distrugge lo stato.

HTTP intestazioni e CSP (3 elementi)

Claude Code non genera middleware per impostazione predefinita a meno che tu non lo chieda.

  1. PRE — Add middleware request to .claude/CLAUDE.md. Include: "Genera src/middleware.ts con Content-Security-Policy utilizzando intestazioni nonce per richiesta, HSTS, X-Frame-Options e X-Content-Type-Options." Quindi chiedi a Claude Code di implementarlo.
  2. PRE — Verify src/middleware.ts exists and has CSP. Con il layout Next.js src/, il middleware deve trovarsi in src/middleware.ts, non nella radice del progetto. Verificare che l'intestazione CSP includa 'strict-dynamic' e un nonce.
  3. POST — Run headers.security-headers on the deployed URL. Il controllo segnala intestazioni mancanti e suggerisce correzioni per la tua piattaforma.

Igiene della distribuzione (4 articoli)

Claude Code non configura la tua piattaforma di distribuzione: è una tua responsabilità, ma vale la pena verificarlo.

  1. DEPLOY — Scope env vars per environment in Vercel (or equivalent). Impostazioni → Variabili d'ambiente → assegna ciascun segreto solo a Production. Non condividere mai sk_live_* con Anteprima o Sviluppo.
  2. DEPLOY — Audit your CI workflow for secret echo. Se GitHub Actions o un altro CI ha echo $SECRET ovunque, rimuovilo. I registri di build vengono archiviati; i segreti nei log sono compromessi.
  3. Le Impostazioni di DEPLOY — Prefer platform-native secret storage. Vercel → Variabili d'ambiente sono crittografate; GitHub I segreti delle azioni sono meglio di niente ma non corrispondono allo spazio di archiviazione nativo della piattaforma.
  4. POST — Rotate any key that reached a public build. Se una chiave appare in un'anteprima Vercel URL o in qualsiasi artefatto pubblico anche solo per secondi, è compromessa. Gira subito.

Claude Code trucchi specifici (5 articoli)

Modelli unici per l'architettura e i flussi di lavoro di Claude Code:

  1. Claude Code forks work into subagents. Nelle attività di grandi dimensioni, Claude Code può generare più istanze di subagente, ciascuna con un contesto codebase parziale. Se un subagente ha allucinazioni su uno schema di sicurezza segreta che un altro non ha, emerge un'incoerenza. Rivedi attentamente la differenza finale.
  2. Bash operations are unverified. Claude Code esegue direttamente i comandi bash. git commit -m "fix" è conveniente, ma se la directory di lavoro ha un file .env e un glob lo include, esegue il commit. Rivedi sempre git diff --cached prima di eseguire il commit di Claude Code.
  3. Context window boundaries create gaps. Se la base di codice è grande, il contesto di Claude Code potrebbe essere suddiviso in più finestre. La gestione .env.local di una finestra potrebbe differire da quella di un'altra. Applica la policy in .claude/CLAUDE.md e verifica l'output.
  4. Rate-limiting is almost never added without asking. Claude Code genera CRUD funzionanti ma raramente include intestazioni che limitano la velocità o logica di backoff esponenziale. Richiedetelo esplicitamente in .claude/CLAUDE.md.
  5. .claude/CLAUDE.md is read but not enforced. Claude Code legge il tuo .claude/CLAUDE.md come un suggerimento, non come un vincolo. Se il suggerimento è in conflitto con l'attività, Claude Code potrebbe ignorarlo. Esamina sempre l'output.

Prossimi passi

Controllare general vibe coding security checklist per 44 elementi tra strumenti, quindi vedere step-by-step hardening per i modelli in fase di distribuzione. Se utilizzi anche Cursor, consulta Cursor security checklist.

// scansiona la tua app

Smetti di leggere. Inizia a trovare le falle nella tua.

Incolla una URL — FixVibe esegue ogni controllo passivo di questa guida più 200 altri in meno di un minuto. Gratis, senza installazione, senza carta.

  • Free tier — 3 scansioni / mese, senza carta.
  • Scansioni passive contro qualsiasi URL — nessuna verifica di dominio.
  • Ottimizzato per Cursor, Claude Code, Lovable, Bolt, v0, Replit.
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
Checklist sicurezza Claude Code: 26 voci — Docs · FixVibe