Problème 6847

N'est-ce pas agaçant quand les machines ne suivent pas des instructions simples ? Claude Code d'Anthropic ne prend pas en compte la commande « ignore » et continue de lire les mots de passe et les clés API, même lorsque votre fichier de secrets est censé être bloqué.
Les développeurs stockent souvent des informations confidentielles (mots de passe, jetons, clés API et autres identifiants) dans des fichiers .env situés dans les répertoires de leurs projets. Dans ce cas, ils doivent s'assurer que le fichier .env n'est pas publié dans un dépôt .git accessible publiquement.
Une méthode courante consiste à créer une entrée dans un fichier .gitignore qui indique au logiciel Git du développeur d'ignorer ce fichier lors de la copie d'un dépôt local vers un serveur distant.
Claude implémente un système similaire : un fichier .claudeignore.
À la question : « Si je crée un fichier .env, comment vous empêcher de le lire ? », Claude a répondu : « Vous pouvez ajouter .env à un fichier .claudeignore à la racine de votre projet. Cela fonctionne comme .gitignore : Claude Code refusera de lire tout fichier correspondant aux modèles qui y sont listés. »
Or, Claude se trompe. Comme décrit dans ce message Pastebin, Claude peut lire le contenu d'un fichier .env malgré une entrée dans le fichier .claudeignore censée en bloquer l'accès.
The Register a reproduit ce résultat. Nous avons créé un répertoire, un fichier .env contenant des exemples de secrets, ajouté un fichier .claudeignore avec « .env » et « .env.* », puis lancé Claude Code (v2.1.12) via l'interface de ligne de commande. Nous avons demandé à Claude de lire le fichier .env, ce qu'il a fait – ce qui ne se produirait pas s'il respectait les entrées du fichier .claudeignore.
Ceci soulève des problèmes de sécurité potentiels, notamment pour les agents : ces modèles d'IA, qui utilisent des outils, pourraient être amenés à partager des secrets stockés via une injection indirecte d'invites.
De plus, Claude ignore également la présence de « .env » dans un fichier .gitignore. Il le fait malgré l'option par défaut /config qui définit « Respecter .gitignore dans le sélecteur de fichiers » sur « true ».
En effet, lorsqu'on lui demande de lire le fichier .env dans un projet dont l'entrée .gitignore inclut « .env », Claude affiche consciencieusement les secrets qu'il contient dans la console, avec l'avertissement suivant : « Remarque : ce fichier contient des identifiants. Soyez prudent lorsque vous l'intégrez au système de contrôle de version ; assurez-vous que .env est listé dans votre fichier .gitignore. »
La propension de Claude à ignorer les directives .claudeignore est mentionnée dans un problème ouvert du dépôt GitHub de Claude Code : « [HAUTE PRIORITÉ] Claude expose des secrets/jetons dans la sortie de l'outil – aucune censure ». L'auteur du problème, ouvert il y a deux jours, précise : « Il s'agit d'un problème de sécurité critique qui doit être traité de toute urgence. »
Ce n'est pas le cas. Deux problèmes publications datant de novembre 2025 soulèvent la même préoccupation. Un autre problème ouvert, créé il y a deux semaines, signale également la propension de Claude à afficher des secrets. Un autre rapport de bug datant d'il y a trois semaines (https://github.com/anthropics/claude-code/issues/16704) indique que « Claude ne devrait ni lire ni même prendre connaissance du contenu du fichier .claudeignore, en utilisant les mêmes règles d'analyse standard que pour un fichier .gitignore ».
Il existe des méthodes pour empêcher Claude d'accéder aux informations confidentielles, comme la spécification des permissions (https://code.claude.com/docs/en/settings#permissions) dans un fichier settings.json du répertoire .claude du projet.
Lorsque nous avons créé ce fichier comme décrit dans la documentation, Claude a signalé l'erreur suivante : « Le fichier .env est bloqué par les paramètres de permissions. Ce comportement est normal : les fichiers .env contiennent généralement des informations confidentielles (clés API, mots de passe, identifiants de base de données) et sont donc exclus de l'accès à l'outil par mesure de sécurité. »
Configurer ces permissions peut s'avérer complexe : un rapport de bug (https://github.com/anthropics/claude-code/issues/11159) soulevant cette difficulté inclut une réponse (https://github.com/anthropics/claude-code/issues/11159#issuecomment-3500262399) expliquant que la syntaxe de Claude pour les chemins absolus commence par deux « // » au lieu d'un seul « / », comme on pourrait s'y attendre sous Linux et macOS. Des développeurs ont également ouvert des tickets (https://github.com/anthropics/claude-code/issues/9271 et https://github.com/anthropics/claude-code/issues/6053) signalant des problèmes avec la syntaxe des références de fichiers (@) dans settings.json. D'autres problèmes subsistent, comme le fait que permissions.deny n'empêche pas le chargement des fichiers en mémoire (https://github.com/anthropics/claude-code/issues/20172).
Anthropic n'a pas répondu à notre demande de commentaires.
Si settings.json est censé être le seul moyen pris en charge pour interdire l'accès aux fichiers à Claude, Anthropic devrait indiquer plus clairement que .claudeignore n'est pas une option. Les recommandations du modèle devraient être conformes aux bonnes pratiques, au lieu d'induire les utilisateurs en erreur. ®