レポート 6847

機械が簡単な指示に従わないのが嫌だと思いませんか? Anthropic の Claude Code は「無視」という応答を受け入れられず、シークレットファイルがブロックされているはずなのに、パスワードや API キーを読み取り続けます。
ソフトウェア開発者は、パスワード、トー クン、API キー、その他の認証情報といったシークレットを、プロジェクトディレクトリ内の .env ファイルに保存することがよくあります。そして、そうする場合、.env ファイルが一般公開されている .git リポジトリに投稿されないようにする必要があります。
これを実現する一般的な方法は、.gitignore ファイルにエントリを作成し、開発者の Git ソフトウェアがローカルリポジトリをリモートサーバーにコピーする際にそのファイルを無視するように指示することです。
Claude は同様の機能、つまり .claudeignore ファイルを実装しています。
「.envファイルを作成した場合、どうすれば読み込まれないようにできますか?」と質問されたとき、Claudeは「プロジェクトルートにある.claudeignoreファイルに.envを追加すればいいのです。これは.gitignoreと同じように機能し、Claude Codeはそこにリストされたパターンに一致するファイルの読み込みを拒否します」と答えました。
しかし、Claudeの回答は誤りです。このPastebinの投稿で説明されているように、Claudeは.claudeignoreファイルにアクセスをブロックするエントリがあるにもかかわらず、.envファイルの内容を読み取ることができます。
_The Register_はこの結果を再現しました。ディレクトリを作成し、サンプルシークレットを含む.envファイルを作成し、「.env」と「.env.*」を含む.claudeignoreファイルを追加し、CLI経由でClaude Code (v2.1.12)を起動しました。 Claude に .env ファイルを読み取らせたところ、実際に読み取られました。Claude が .claudeignore エントリを尊重していれば、このようなことは起こりません。
これは、特にエージェントにとってセキュリティ上の潜在的な問題となります。ツール対応の AI モデルは、間接的なプロンプトインジェクションによって、保存された秘密情報を共有するように誘導される可能性があります。
さらに、Claude は .gitignore ファイル内の ".env" の存在も無視します。これは、デフォルトの /config フラグで「ファイルピッカーで .gitignore を尊重する」が "true" に設定されているにもかかわらず発生します。
実際、.gitignore エントリに ".env" を含むプロジェクトで .env ファイルを読み取るように要求されたとき、Claude はファイル内の秘密情報をコンソールに表示し、次のような警告を表示します。「注意: このファイルには認証情報が含まれています。バージョン管理へのコミットにはご注意ください。.gitignore に .env が含まれていることを確認してください。」
Claude が .claudeignore ディレクティブを無視する姿勢は、Claude Code の GitHub リポジトリの オープンな問題投稿 で言及されています。「[高優先度] Claude がツール出力でシークレット/トークンを公開 - 編集なし」。2 日前にこの問題をオープンした人物は、「これはセキュリティ上極めて重要な問題であり、早急に対処する必要があります」と述べています。
しかし、実際には対処されていません。2025 年 11 月の 2 件の 投稿 でも同じ懸念が表明されています。 2週間前に作成された別のオープンな問題でも、Claudeが秘密情報を表示することに積極的であることが指摘されています。3週間前に投稿されたさらに別のバグレポートでも、「Claudeは.claudeignoreファイルの内容を読み取ったり、意識したりすることを控えるべきです。.gitignoreファイルと同じ標準解析ルールを使用してください。」と述べられています。
Claudeに秘密情報へのアクセスを遠ざける方法はいくつかあり、例えばプロジェクトの.claudeディレクトリにあるsettings.jsonファイル内で権限を指定するといった方法があります。これは有効と思われます。
ドキュメントに記載されている通りにファイルを作成したところ、Claude から次のようなエラーが報告されました。「.env ファイルは権限設定によってブロックされています。これは想定内の動作です。.env ファイルは通常、秘密情報(API キー、パスワード、データベース認証情報)を含んでいるため、セキュリティ対策としてツールへのアクセスから除外されています。」
しかし、これらの権限設定の構成は複雑になる場合があります。この懸念を提起した バグレポート には、Claude の絶対パス構文が Linux や macOS ユーザーが想定するような「/」ではなく、2 つの「//」で始まることを説明した 回答 が含まれています。開発者は、settings.json の @ ファイル参照構文に関する問題を報告し、(https://github.com/anthropics/claude-code/issues/9271) issues を 公開 しています。また、permissions.deny が ファイルのメモリへのロードを防止しない などの問題も報告されています。
Anthropic はコメント要請に応じませんでした。
settings.json が Claude のファイルアクセスを拒否する唯一の方法としてサポートされているのであれば、Anthropic は .claudeignore が選択肢ではないことを明確に示すべきです。モデル自体の推奨事項は、ユーザーを惑わすのではなく、ベストプラクティスに沿ったものであるべきです。®