Розробники часто тримають секрети — паролі, токени та API-ключі — у спеціальних файлах .env безпосередньо в папках із проєктами. Проте це зобов’язує їх стежити за тим, щоб такі файли не опинилися у відкритому доступі в репозиторіях .git.

Читайте также: Андрей Карпати зізнався, що його код на 80% пише ШІ й спрогнозував «слопокаліпсис», який настане у 2026 році

Поширений спосіб зробити це — створити запис у файлі .gitignore, який повідомляє програмному забезпеченню Git розробника ігнорувати цей файл під час копіювання локального репозиторію на віддалений сервер.

Claude реалізує щось подібне — файл .claudeignore.

Коли Claude запитали: «Якщо я створю файл .env, як мені заборонити тобі його читати?», він відповів: «Ви можете додати .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. Він робить це попри a default /config flag, що встановлює «Respect .gitignore in file picker» на «true». 

Читайте также: У КПІ створили першу в Україні освітню команду реагування на кіберінциденти

Насправді коли його просять прочитати файл .env у проєкті із записом .gitignore, який містить «.env», Клод слухняно виводить секрети в консолі з наступним попередженням: «Примітка: Цей файл містить облікові дані. Будьте обережні з передачею його до системи контролю версій — переконайтеся, що .env вказано у вашому .gitignore».

Готовність Claude ігнорувати директиви .claudeignore згадується у відкритому повідомленні про проблему в GitHub-репозиторії Claude Code під назвою «[ВИСОКИЙ ПРІОРИТЕТ] Claude розкриває секрети/токени у виводі інструментів — дані не приховуються». Користувач, який відкрив цей тікет два дні тому, зазначає: «Це критична проблема безпеки, яку необхідно вирішити терміново».

Існують методи змусити Claude триматися якомога далі від секретів, які, здається, працюють — наприклад, визначення прав доступу у файлі settings.json, що розташований у директорії .claude проєкту.

Коли журналісти The Register створили такий файл, Claude видав помилку: «Файл .env заблоковано налаштуваннями прав доступу. Це очікувана поведінка — файли .env зазвичай містять секрети (API-ключі, паролі, облікові дані баз даних), тому вони виключені з доступу інструментів як засіб безпеки».

Але налаштування цих налаштувань дозволів може бути складним — звіт про помилку, що піднімає це занепокоєння, містить відповідь, яка пояснює, що синтаксис Claude для абсолютних шляхів починається з двох «//» замість «/», як можуть очікувати користувачі Linux і macOS. Розробники також повідомляли про проблеми із синтаксисом посилання на файл @ у settings.json. Є й інші проблеми, наприклад, permissions.deny не запобігає завантаженню файлів у пам’ять.

«Якщо settings.json має бути єдиним підтримуваним способом заборони Claude доступу до файлів, Anthropic має чіткіше дати зрозуміти, що .claudeignore не є варіантом. Власні рекомендації моделі повинні відповідати найкращим практикам, а не вводити людей в оману», — підсували у виданні. 

Читайте также: Математика як наука та навчальна дисципліна під впливом штучного інтелекту

Ваша пробная версия Premium закончилась

https://dev.ua/news/claude-code-chytaie-zaboroneni-prykhovani-faily-1769690746

Від admin

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *