Практически каждое обращение про неожиданные списания заканчивается одинаково: ключ утёк. Не взлом, не подбор пароля, а ключ, который лежал там, где его мог прочитать кто-то ещё. Ниже шесть правил, которые закрывают большую часть таких историй.
Первое: ключ живёт в переменных окружения, а не в коде. Строка с ключом в репозитории — это ключ, опубликованный навсегда, даже если вы удалите его следующим коммитом: история хранит всё, а публичные репозитории индексируются ботами за минуты.
Второе: никогда не обращайтесь к API из браузера. Любой запрос с фронтенда означает, что ключ можно прочитать в инструментах разработчика. Покупка номеров должна идти через ваш бэкенд, а клиенту отдавайте только результат.
Третье: разделяйте ключи по контурам. Боевой ключ — только в продакшене, тестовый — в разработке и CI. Так утечка из тестового окружения не превращается в расход баланса, а по логам сразу видно, откуда пришёл запрос.
Четвёртое: ограничьте доступ по IP. Если запросы к API идут с двух известных серверов, список разрешённых адресов делает украденный ключ почти бесполезным. Это настройка на пять минут, которая ломает большинство автоматизированных атак.
Пятое: перевыпускайте ключ при любом сомнении. Показали ключ на скриншоте, отправили в чат, уволили разработчика с доступом — перевыпуск занимает секунду и стоит дешевле, чем разбор списаний. Старый ключ перестаёт работать сразу, поэтому запланируйте обновление во всех интеграциях.
Шестое: включите двухфакторную аутентификацию на аккаунте. Ключ можно перевыпустить только из кабинета, поэтому защита входа — последний рубеж: без второго фактора чужой доступ к почте превращается в полный доступ к вашему балансу.
Есть вопрос по материалу? Напишите нам.
Все материалы