FixVibe

// docs / security guides / claude code checklist

Checklist de sécurité Claude Code : 26 items

Claude Code (l'agent CLI d'Anthropic) génère des bases de code entières via des commandes slash, gère la refactorisation multi-fichiers et lit les fichiers /writes via bash. Cette liste de contrôle cible les risques spécifiques de Claude Code : aucune politique de sécurité par défaut, limitation de débit rarement ajoutée, <code>.claude/CLAUDE.md</code> comme fichier de garde-fou de sécurité et le risque de validation de <code>.env</code> ou de jetons mis en cache. 26 éléments couvrant les secrets, la base de données, l'authentification, les en-têtes, le déploiement et les pièges spécifiques à Claude Code.

PRE = pré-déploiement (vérifiez votre source). DEPLOY = au moment du déploiement. POST = vérification post-déploiement. Les éléments font référence à FixVibe et vérifient les identifiants sous la forme category.check-id, le cas échéant.

Secrets et clés API (5 éléments)

Claude Code lit des arborescences sources entières et génère des fichiers entiers. Les secrets dans votre contexte deviennent des secrets dans la sortie.

  1. PRE — Create .claude/CLAUDE.md with security policies. Ajouter : "Security Rules: N'incorporez jamais les clés service_role dans les bundles clients. Acheminez toujours les opérations sensibles via des points de terminaison réservés au serveur. Vérifiez que les variables d'environnement NEXT_PUBLIC_* ne contiennent que des valeurs sûres (pas de clés, pas de jetons)." Claude Code lit .claude/CLAUDE.md pour des conseils sur le projet.
  2. PRE — Ensure .env.local is in .gitignore. Claude Code peut accidentellement commettre .env.local lors d'une refactorisation. Exécutez git ls-files .env* pour vérifier ce qui est suivi. Si .env.local est présent, il est exposé.
  3. PRE — Audit generated API routes for env-var verification. Claude Code oublie parfois de vérifier que process.env.SECRET existe côté serveur avant de l'utiliser. Les routes devraient échouer rapidement si une variable d'environnement est manquante, et non revenir à une valeur par défaut.
  4. PRE — Check the .claude cache directory. Claude Code met en cache le contexte de conversation dans .claude/cache ou .claude/history. Ces fichiers ne doivent pas être validés. Ajoutez .claude/ à .gitignore.
  5. POST — Run secrets.browser-storage on the deployed app. Si Claude Code a intégré une clé, l'analyse passive la trouvera dans le bundle rendu.

Contrôle d'accès à la base de données (4 éléments)

Claude Code est excellent pour générer des schémas, mais les politiques RLS nécessitent des instructions explicites.

  1. PRE — Instruct Claude Code on RLS in .claude/CLAUDE.md. Ajouter : "Chaque migration doit inclure ALTER TABLE ... ENABLE ROW LEVEL SECURITY et FORCE ROW LEVEL SECURITY. Chaque stratégie doit valider le auth.uid() de l'utilisateur."
  2. PRE — Review generated migrations for FORCE ROW LEVEL SECURITY. Claude Code peut générer ENABLE mais oubliez FORCE. Sans FORCE, les propriétaires de table (l'exécuteur de migration) contournent RLS. Ajoutez-le manuellement s'il est manquant.
  3. DEPLOY — Test RLS enforcement after deploy. Ouvrez Supabase Studio, choisissez une table, confirmez que RLS la bascule est ON. Si la migration de Claude Code a utilisé ENABLE sans FORCE, la bascule indiquera ON mais l'application est incomplète.
  4. POST — Run the baas.supabase-rls active check. Il tente une écriture avec la touche anon. S'il réussit, RLS est incomplet. Ajoutez FORCE à la migration et redéployez.

Authentification et sessions (4 éléments)

Claude Code génère bien les flux d'authentification mais n'ajoute pas automatiquement de limitation de débit ni ne vérifie toutes les revendications de jetons côté serveur.

  1. PRE — Mandate server-only auth verification in .claude/CLAUDE.md. Ajouter : "Chaque route API qui mute les données doit vérifier l'utilisateur avec await supabase.auth.getUser() sur le serveur. Ne faites jamais confiance à getSession() ou à l'utilisateur ID dans le corps de la requête."
  2. PRE — Check generated auth handlers for token expiry. Les jetons Magic-link et de réinitialisation de mot de passe doivent être appliqués par le serveur expires_at. Demandez à Claude Code : "Ajoutez une vérification qui rejette les jetons datant de plus d'une heure."
  3. PRE — Verify sign-in redirect guards. La redirection du paramètre next doit commencer par / et non par //. Ajouter à .claude/CLAUDE.md : "Valider le paramètre next : doit commencer par /, rejeter s'il commence par // ou contient un protocole."
  4. POST — Test logout clears cookies. Connectez-vous, déconnectez-vous, inspectez Application → Cookies. Le cookie de session doit être effacé. Si cela persiste, le point de terminaison de déconnexion ne détruit pas l’état.

HTTP en-têtes et CSP (3 éléments)

Claude Code ne génère pas de middleware par défaut, sauf si vous le demandez.

  1. PRE — Add middleware request to .claude/CLAUDE.md. Inclure : "Générer src/middleware.ts avec Content-Security-Policy à l'aide d'un nom occasionnel par requête, HSTS, X-Frame-Options et X-Content-Type-Options." Demandez ensuite à Claude Code de l'implémenter.
  2. PRE — Verify src/middleware.ts exists and has CSP. Avec la disposition Next.js src/, le middleware doit se trouver à src/middleware.ts, et non à la racine du projet. Vérifiez que l'en-tête CSP inclut 'strict-dynamic' et un nom occasionnel.
  3. POST — Run headers.security-headers on the deployed URL. La vérification signale les en-têtes manquants et suggère des correctifs pour votre plate-forme.

Hygiène de déploiement (4 éléments)

Claude Code ne configure pas votre plate-forme de déploiement : c'est votre responsabilité, mais cela vaut la peine d'être vérifié.

  1. DEPLOY — Scope env vars per environment in Vercel (or equivalent). Paramètres → Variables d'environnement → attribuez chaque secret uniquement à Production. Ne partagez jamais sk_live_* avec Preview ou Development.
  2. DEPLOY — Audit your CI workflow for secret echo. Si GitHub Actions ou un autre CI a echo $SECRET n'importe où, supprimez-le. Les journaux de construction sont archivés ; les secrets des journaux sont compromis.
  3. DEPLOY — Prefer platform-native secret storage. Paramètres de Vercel → Les variables d'environnement sont cryptées ; GitHub Les secrets d'actions valent mieux que rien, mais ne correspondent pas au stockage natif de la plateforme.
  4. POST — Rotate any key that reached a public build. Si une clé apparaît dans un Vercel Aperçu URL ou dans tout artefact public pendant quelques secondes, elle est compromise. Faites pivoter immédiatement.

Claude Code pièges spécifiques (5 éléments)

Modèles uniques à l'architecture et aux flux de travail de Claude Code :

  1. Claude Code forks work into subagents. Sur les tâches volumineuses, Claude Code peut générer plusieurs instances de sous-agent, chacune avec un contexte de base de code partiel. Si un sous-agent hallucine un schéma secret alors qu'un autre ne le fait pas, une incohérence apparaît. Examinez attentivement la différence finale.
  2. Bash operations are unverified. Claude Code exécute directement les commandes bash. git commit -m "fix" est pratique, mais si le répertoire de travail a un fichier .env et qu'un glob l'inclut, il est validé. Vérifiez toujours git diff --cached avant que Claude Code ne soit validé.
  3. Context window boundaries create gaps. Si votre base de code est volumineuse, le contexte de Claude Code peut être réparti sur plusieurs fenêtres. La gestion .env.local d'une fenêtre peut différer de celle d'une autre. Appliquez la stratégie dans .claude/CLAUDE.md et vérifiez le résultat.
  4. Rate-limiting is almost never added without asking. Claude Code génère un CRUD fonctionnel mais inclut rarement des en-têtes à limitation de débit ou une logique d'intervalle exponentiel. Demandez-le explicitement dans .claude/CLAUDE.md.
  5. .claude/CLAUDE.md is read but not enforced. Claude Code lit votre .claude/CLAUDE.md comme un indice et non comme une contrainte. Si l'indice entre en conflit avec la tâche, Claude Code peut l'ignorer. Examinez toujours le résultat.

Prochaines étapes

Vérifiez le general vibe coding security checklist pour 44 éléments multi-outils, puis consultez step-by-step hardening pour les modèles de temps de déploiement. Si vous utilisez également Cursor, consultez le Cursor security checklist.

// scanner votre app

Arrêtez de lire. Trouvez les failles dans la vôtre.

Collez une URL — FixVibe exécute tous les contrôles passifs de ce guide plus 200 autres en moins d'une minute. Gratuit, sans installation, sans carte.

  • Plan gratuit — 3 scans / mois, sans carte.
  • Scans passifs contre n'importe quelle URL — pas de vérification de domaine.
  • Optimisé pour Cursor, Claude Code, Lovable, Bolt, v0, Replit.
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
Checklist de sécurité Claude Code : 26 items — Docs · FixVibe