Добавить в корзинуПозвонить
Найти в Дзене

Запретил Claude Code читать .env - он обошел за 30 секунд

Я сделал всё по инструкции. Создал .claudeignore, добавил .env в запрещенный список, поставил deny в настройках. Попросил Claude Code прочитать файл - он отказал. А потом обошел все запреты за одну фразу. Вот как это работает - и почему .claudeignore не спасет твои ключи. У меня в проекте лежит .env с API-ключами, токенами и паролями от базы. Как у всех. Я решил проверить, насколько хорошо Claude Code защищает эти данные. Шаг 1: создал .claudeignore в корне проекта. Это аналог .gitignore, но для AI-агентов. Добавил туда .env. Шаг 2: зашел в Settings и поставил deny на чтение .env. Шаг 3: запустил Claude Code и попросил прямо: "прочитай мой .env". Он вежливо отказал. Мол, файл в запрещенном списке, не могу. Отлично. Защита работает. Я попросил написать Python-скрипт, который читает значения из .env. Claude Code задал уточняющий вопрос. Потом написал скрипт, запустил - и выдал всё содержимое файла. Все API-ключи, все токены, все пароли. 30 секунд. Одна фраза. .claudeignore блокирует вст
Оглавление

Я сделал всё по инструкции. Создал .claudeignore, добавил .env в запрещенный список, поставил deny в настройках. Попросил Claude Code прочитать файл - он отказал. А потом обошел все запреты за одну фразу.

Вот как это работает - и почему .claudeignore не спасет твои ключи.

Что я сделал

У меня в проекте лежит .env с API-ключами, токенами и паролями от базы. Как у всех. Я решил проверить, насколько хорошо Claude Code защищает эти данные.

Шаг 1: создал .claudeignore в корне проекта. Это аналог .gitignore, но для AI-агентов. Добавил туда .env.

Шаг 2: зашел в Settings и поставил deny на чтение .env.

Шаг 3: запустил Claude Code и попросил прямо: "прочитай мой .env".

Он вежливо отказал. Мол, файл в запрещенном списке, не могу.

Отлично. Защита работает.

Как я обошел защиту

Я попросил написать Python-скрипт, который читает значения из .env.

Claude Code задал уточняющий вопрос. Потом написал скрипт, запустил - и выдал всё содержимое файла. Все API-ключи, все токены, все пароли.

30 секунд. Одна фраза.

Почему это работает

.claudeignore блокирует встроенный инструмент Read. Когда агент пытается прочитать файл напрямую - он проверяет список и отказывает.

Но когда агент пишет Python-скрипт и запускает через Bash - это уже не Read. Это обычный код в твоем терминале, с твоими правами. Никакой .claudeignore на исполняемый код не действует.

Агент не ломает правила. Он их обходит. Тем же умом, которым решает твои задачи.

Это касается всех AI-агентов

Та же логика работает с Cursor, Copilot, Windsurf. Любой агент, который умеет писать и запускать скрипты, может прочитать любой файл на твоей машине.

Что реально помогает

Продакшен-секреты не должны лежать на твоей машине.

Если в .env настоящие ключи от боевой базы - проблема не в агенте. Проблема в том, что секреты доступны в принципе. Не только агенту - любому вредоносному npm-пакету, любому скрипту, любому, кто получит доступ к ноутбуку.

Три вещи, которые работают:

  • Ограничь доступ к продакшену. Для локальной разработки - staging
  • Ротируй секреты регулярно
  • Относись к машине так, будто она уже скомпрометирована

.claudeignore - защита от случайного чтения. Не от целенаправленного.

Проверь сам

Открой проект с .env, добавь в .claudeignore, попроси агента "написать скрипт для валидации переменных окружения". Результат тебя удивит.

Как ты защищаешь секреты от AI-агентов? Или пока не задумывался?

#ИскусственныйИнтеллект #Программирование #IT