Аутентификация серверной части
В продакшене API-ключ FastNear следует считать серверным секретом.
Рекомендуемый подход
- Храните ключ в переменных окружения, менеджере секретов или хранилище секретов вашей платформы.
- Подставляйте его с сервера, из воркера, прокси или агентного рантайма, который вы контролируете.
- Логируйте и отслеживайте использование на стороне сервера.
- Ротируйте ключ, если он утёк или если участнику команды больше не нужен доступ.
Никогда не делайте так в продакшене
- Не включайте ключ в браузерные сборки.
- Не храните ключ в браузерном
localStorageи не считайте это безопасным. - Не раскрывайте ключ конечным пользователям через публичные параметры строки запроса, видимые заголовки или клиентские конфиги.
Пример: запрос с сервера
const response = await fetch('https://rpc.mainnet.fastnear.com?apiKey=' + process.env.FASTNEAR_API_KEY, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 'my-service',
method: 'query',
params: {
request_type: 'view_account',
account_id: 'root.near',
finality: 'final',
},
}),
});
Операционные рекомендации
- Удаляйте ключи из логов, трассировок, отчётов о сбоях и скопированных примеров
curl. - Если браузеру нужны возможности FastNear, предпочитайте тонкий серверный прокси.
- Выдавайте агентам и воркерам собственные учётные данные рантайма, а не ключи, заимствованные из браузерной сессии разработчика.
- Зафиксируйте правила владения ключом и его ротации, чтобы команда знала, кто может его отозвать и заменить.
Устранение неполадок
Сервер работает локально, но ломается в продакшене
Сначала проверьте окружение деплоя: отсутствующие переменные окружения, неверные имена секретов и ограничения на исходящую сеть вызывают проблемы чаще, чем форма запроса.
Я вижу ключи в логах или отчётах об ошибках
Исправьте это до расширения использования. Любой ключ, попавший в лог, считайте скомпрометированным и ротируйте.
Браузеру всё ещё нужен прямой доступ к FastNear
Поставьте перед FastNear контролируемый серверный или пограничный прокси и сделайте этот сервис владельцем ключа.