Как найти утёкшие API-ключи в коде и устранить утечку
Локальный поиск секретов, отличие публичных идентификаторов от ключей доступа и порядок отзыва ключей перед очисткой кода и истории.
Выберите способ обработки данных
Для короткого фрагмента используйте инструмент поиска секретов в браузере: он проверяет вставленный текст локально без отправки в серверный сканер. Режим проверки кода на главной работает отдельно и обрабатывает данные на сервере. Для репозитория нужен открытый репозиторий, вход и настроенный сервер. У этих трёх режимов разные свойства приватности и покрытие.
Разберите совпадения, не распространяя ключ
Сначала изучите инструмент на учебной конфигурации. Для настоящего совпадения приватно определите провайдера, назначение и права ключа. Поиск по шаблонам может сработать на пример или пропустить необычный формат. Некоторые клиентские идентификаторы предназначены для публикации, а служебные ключи должны оставаться на сервере. Не проверяйте найденный ключ в чужом аккаунте без разрешения.
Сначала отзовите ключ, затем удаляйте строку
Если привилегированный ключ был опубликован, отзовите или замените его средствами провайдера. Обновите серверное окружение, разверните приложение и убедитесь в своей среде, что старый ключ больше не принимается. Изучите журналы доступа и разрешения. Удаление строки или перевод репозитория в приватный режим не отменяет уже скачанные копии.
Проверьте, где мог сохраниться секрет
Изучите собранный JavaScript, карты исходников, конфигурацию, логи, вывод CI и историю git. Проверка открытого репозитория может включать историю и доступные движки поиска секретов; пропущенный движок означает пробел. Очистка истории влияет на работу коллег, поэтому согласуйте её после отзыва ключа. Не помещайте серверные секреты в NEXT_PUBLIC и другие переменные, подставляемые в клиентскую сборку.
Предотвратите повторную утечку
Храните серверные ключи в настройках окружения и ограничивайте их права. Добавьте пример файла окружения с заглушками, локальные проверки перед коммитом и проверки CI перед публикацией. После исправления изучите отчёт и зафиксируйте пропуски. Отсутствие совпадений по шаблонам не гарантирует отсутствие секретов.