Разве вас не раздражает, когда машины отказываются следовать простым инструкциям? Claude Code от Anthropic не принимает отказ на свой счет и продолжает читать пароли и API-ключи, даже если ваш файл с секретами должен быть заблокирован.
Разработчики программного обеспечения часто хранят секреты — пароли, токены, API-ключи и другие учетные данные — в файлах .env в каталогах проектов. И если они это делают, они должны гарантировать, что файл .env не будет опубликован в общедоступном репозитории .git.
Обычный способ сделать это — создать запись в файле .gitignore, который указывает программному обеспечению Git разработчика игнорировать этот файл при копировании локального репозитория на удаленный сервер.
Claude реализует нечто похожее — файл .claudeignore.
На вопрос: «Если я создам файл .env, как мне запретить вам его читать?», Claude ответил: «Вы можете добавить .env в файл .claudeignore в корне вашего проекта. Это работает как .gitignore — Claude Code откажется читать любые файлы, соответствующие перечисленным там шаблонам».
Но Claude ошибается. Как описано в этой записи Pastebin, Claude может прочитать содержимое файла .env, несмотря на запись в файле .claudeignore, которая должна предотвращать доступ.
The Register воспроизвел этот результат. Мы создали каталог, создали файл .env с образцами секретов, добавили файл .claudeignore с указанием “.env” и “.env.*”, а затем запустили Claude Code (v2.1.12) через CLI. Мы попросили Claude прочитать файл .env, и он это сделал — чего бы не произошло, если бы Claude уважал записи .claudeignore.
Это имеет потенциальные последствия для безопасности, особенно для агентов — эти модели ИИ, оснащенные инструментами, могут быть спровоцированы на раскрытие сохраненных секретов посредством косвенной инъекции промптов.
Более того, Claude также проигнорирует наличие “.env” в файле .gitignore. Он делает это, несмотря на флаг по умолчанию /config, который устанавливает “Respect .gitignore in file picker” (Уважать .gitignore в средстве выбора файлов) в “true”.
Фактически, когда его просят прочитать файл .env в проекте с записью в .gitignore, включающей “.env”, Claude добросовестно выводит секреты в консоль со следующим предупреждением: «Примечание: этот файл содержит учетные данные. Будьте осторожны при добавлении его в систему контроля версий — убедитесь, что .env указан в вашем .gitignore».
Готовность Claude игнорировать директивы .claudeignore упоминается в открытом сообщении об ошибке в репозитории Claude Code на GitHub: «[ВЫСОКИЙ ПРИОРИТЕТ] Claude раскрывает секреты/токены в выводе инструментов — без цензуры». Автор, открывший проблему два дня назад, отмечает: «Это критически важная проблема безопасности, которую следует срочно решить».
Но этого не произошло. Два сообщения от ноября 2025 года поднимают ту же проблему. Еще одна открытая проблема, созданная две недели назад, также указывает на склонность Claude отображать секреты. Как и еще один отчет об ошибке трехнедельной давности, в котором говорится: «Claude должен воздерживаться от чтения или даже осведомленности о чем-либо в файле .claudeignore, используя [те же] стандартные правила синтаксического анализа, что и для файла .gitignore».
Существуют способы указать Claude держаться подальше от секретов, которые, по-видимому, работают, например, указание разрешений в файле settings.json в каталоге .claude проекта.
Когда мы создали этот файл, как описано в документации, Claude сообщил об ошибке: «Файл .env заблокирован настройками разрешений. Это ожидаемое поведение — файлы .env обычно содержат секреты (API-ключи, пароли, учетные данные базы данных), поэтому они исключены из доступа инструментов в качестве меры безопасности».
Но настройка этих разрешений может быть сложной — в отчете об ошибке, поднимающем эту проблему, содержится ответ, объясняющий, что синтаксис для абсолютных путей в Claude начинается с двух “//” вместо “/” , как могут ожидать пользователи Linux и macOS. Разработчики также открывали проблемы, сообщая о проблемах с синтаксисом ссылки на файл @ в settings.json. И есть другие проблемы, например, permissions.deny не мешает загружать файлы в память.
Anthropic не ответила на запрос о комментариях.
Если settings.json задуман как единственный поддерживаемый способ запретить Claude доступ к файлам, Anthropic должна более четко указать, что .claudeignore не является вариантом. Рекомендации самой модели должны соответствовать лучшим практикам, а не вводить людей в заблуждение. ®
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Thomas Claburn




