rhizo
Подписаться

Открытый .env и .git: проверь свой сайт за 10 секунд

Пароли от базы и сервера иногда лежат по прямому адресу, а боты каждый день ищут их у всех сайтов подряд. Проверка без кода и три шага, чтобы закрыть.

от проверки до закрытой дыры

1/5

Что лежит в .env и .git

Что это

.env - записка с паролями: от базы данных, почты, платежки, сервера. Сайт читает ее сам, посетителям она не нужна. .git - папка с историей кода: все версии сайта и все правки.

Что ломается

если эти файлы открываются по прямому адресу, это ключи от серверной под ковриком. Только коврик лежит в интернете, и под него заглядывают боты: они проверяют адреса вроде /.env у всех сайтов подряд, каждый день.

Чем грозит

с паролем от базы забирают данные клиентов, с доступом к серверу подменяют сайт или ставят на него вирус. Если утекут данные людей, отвечать за утечку будешь ты.

2/5

Проверь свой сайт без кода

Шаг 1

допиши к адресу сайта /.env и открой в браузере: mysite.ru/.env.

Плохо

скачался файл или на экране голый текст со строками вида DB_PASSWORD=.... Закрывай сегодня.

Нормально

ошибка 404 "не найдено", запрет 403 или открылась твоя обычная страница: многие сайты на любой адрес показывают главную.

Шаг 2

то же для mysite.ru/.git/config. Плохо, если видишь текст, который начинается с [core].

Нельзя

проверять так чужие сайты. Только свой.

Закрыть файл мало: пароли из него надо сменить

3/5

Откуда это у вайбкодеров

Порядок

агент кладет .env в корень проекта, и это нормально, пока проект у тебя на компьютере. Беда начинается, когда папку проекта целиком загружают на обычный хостинг: через FTP, панель управления или архивом. Вместе с сайтом в интернет уезжают и пароли, и история кода.

Честно:

на Vercel, Netlify и похожих платформах такое бывает реже: они отдают только готовую сборку, а .env туда обычно не попадает. Но ключ может утечь и там, если агент вписал его прямо в код страницы. Об этом в пяти проверках перед запуском.

4/5

Закрыть за вечер

1. Закрой

запрети отдачу всех файлов и папок, которые начинаются с точки. Исключение - папка .well-known, она нужна для сертификата.

nginx: location ~ /\.(?!well-known) { deny all; }

Apache, файл .htaccess: RedirectMatch 404 /\.(?!well-known)

Еще надежнее - не класть .env и .git в папку, которую видит интернет.

2. Смени пароли

все, что лежало в .env: база, почта, ключи API, доступ к серверу. Файл могли скачать раньше, чем ты его закрыл.

3. Посмотри следы

журналы сервера и входы в базу и кабинеты за последние недели: не было ли запросов к /.env и чужих входов.

Скажи агенту

"На сайте по прямому адресу открываются служебные файлы .env и папка .git. Запрети отдачу всех файлов и папок, которые начинаются с точки, кроме .well-known, в настройках веб-сервера или убери их из папки, которую видит интернет. Проверь, что /.env и /.git/config отвечают 404 или 403. Выпиши названия всех паролей и ключей из .env без самих значений: я сменю их вручную. Ничего не удаляй из репозитория без моего подтверждения".

Нельзя

просто удалить пароль из кода и считать, что все: в истории .git он остался. Пароль нужно сменить.

5/5

Чтобы не открылось снова

Порядок

выкладывай на хостинг только готовую сборку сайта, а не всю папку проекта. Если не знаешь, где она, спроси агента: "какую папку загружать на хостинг?"

Скажи агенту один раз

"Запиши в правила проекта: файл .env и папка .git никогда не попадают в папку, которую видит интернет; .env всегда в .gitignore; пароли и ключи только в переменных окружения на сервере. Перед каждой выкладкой проверяй это и говори мне, если что-то не так".

Можно

после каждой выкладки открыть mysite.ru/.env еще раз. Десять секунд, и ты спокоен до следующей правки.

Частые вопросы

Как проверить, открыт ли .env на сайте?

Допиши к адресу сайта /.env и открой в браузере, например mysite.ru/.env. Скачался файл или видны строки вида DB_PASSWORD=... - файл открыт, закрывай сегодня. Ошибка 404, запрет 403 или твоя обычная страница - все в порядке. Так же проверь адрес /.git/config.

Опасно ли, если открыт только .git?

Да. Из открытой папки .git часто можно собрать весь код сайта вместе с историей правок. В истории остаются даже пароли, которые потом удалили из кода.

Я закрыл файл. Пароли менять обязательно?

Обязательно. Боты проверяют такие адреса у всех сайтов подряд, и файл могли скачать задолго до того, как ты его закрыл. Закрытие защищает от новых глаз, смена паролей - от тех, кто уже скачал.

На Vercel или Netlify это тоже бывает?

Реже. Такие платформы отдают только готовую сборку сайта, а .env туда обычно не попадает. Чаще всего файл открыт на обычном хостинге, куда проект загрузили целиком, например через FTP или панель управления.

Источникисверено 28.09.2026

  1. OWASP: забытые и служебные файлы на сайте как источник утечек
  2. nginx: директива location
  3. nginx: запрет доступа, deny
  4. Apache: RedirectMatch
  5. GitHub: пароль в истории репозитория остается, его нужно сменить
Проверь, не открыт ли .env у тебя

Разбор написал Александр Корнев. Строю продукты с ИИ-агентом и разбираю, где такие проекты ломаются. Новое сначала в канале.