Защита ключей API в стеке JAM - PullRequest
0 голосов
/ 16 ноября 2018

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

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

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

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

Что такое «лучшая практика» в этом случае?

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

1 Ответ

0 голосов
/ 26 декабря 2018

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

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

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

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

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

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

...