Защита ключей API в стеке JAM

Я новичок в стеке JAM. Веб-приложения в стеке JAM (я размещаю свое приложение в Netlify) будут полностью полагаться на API для хранения информации и аутентификации, верно?

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

Я читал открытую проблему в репозитории стека JAM здесь на Github

Как я могу защитить свои ключи API от перехвата и неправильного использования?

Какова "лучшая практика" в этом случае?

заранее спасибо

0 ответов

Отказ от ответственности: я работаю на Netlify

Это частый вопрос, и Netlify разработала некоторые функции, чтобы справиться с этим без каких-либо дополнительных сервисов, которые вы должны запускать. Оба показаны в этой статье, но я подведу итоги здесь: https://www.netlify.com/docs/redirects/

  1. Вы можете прокси к другим сервисам с помощью специального HTTP-заголовка, используя headers директива для перенаправления в netlify.toml (только - не в _redirects!)

  2. Netlify подпишет ваш запрос JWS, если ваша удаленная служба сможет проверить подпись и отклонить неподписанные запросы, поэтому никто другой не сможет успешно использовать ваши ключи. Вы можете использовать signed директива для вашего перенаправления (только в netlify.toml опять же не в _redirects).

Оба из них требуют, чтобы у вас был некоторый контроль над API (или он должен поддерживать одну из этих конфигураций перед тем, как принять ваш запрос API).

Если вы не можете контролировать API, вы можете рассмотреть возможность использования функции для добавления их в запрос API, фактически прокси для вас. Обратите внимание, что это немного сложно и имеет жесткое ограничение, что ваш код + ответ прокси + должен произойти в течение 10 секунд, то есть столько, сколько требуется для вызова функции по умолчанию в Netlify.

Другие вопросы по тегам