Безопасен ли доступ к ключам publi c (в интерфейсных модулях) с помощью библиотеки dotenv, если серверная часть (личные ключи) также хранится в том же файле .env? - PullRequest
0 голосов
/ 14 апреля 2020

Is является безопасным для доступа к ключам PUBLI C для клиентского / внешнего кода с использованием библиотеки 'dotenv', когда в моем файле .env также хранятся PRIVATE (то есть секретные) ключи, которые используются только сервером ?

Нужно ли беспокоиться о том, чтобы при обращении к ключам PUBLI C на внешнем интерфейсе отображались ключи PRIVATE, используемые кодом на стороне сервера?

Например:

/* SOME FRONT-END (CLIENT-SIDE) COMPONENT */

require('dotenv').config() // really hope I'm not exposing my private keys here ?

const myPublicKeyThatIsOkayForThePublicToSee = process.env.SOME_PUBLIC_KEY

// end of file... never access any PRIVATE keys, but hopefully they weren't exposed above

Я надеюсь успокоиться, зная, что могу хранить все свои ключи в одном файле, так как это значительно облегчит процесс разработки (более удобный для сопровождения проекта и т. Д. c.). Кажется раздражающим, чтобы хранить ключи в двух отдельных местах; Я бы предпочел просто иметь один большой текстовый документ конфигурации (например, файл .env), где находятся все ключи и где я мог бы просто назвать ключи PRIVATE тегом "PRIVATE_" и "PUBLIC_" для переменных PUBLI C.

Пример желаемого .env file:

PUBLIC_SOME_3RD_PARTY_API_AUTH_ACCESS_TOKEN=d678h678hs6s78g6h7s8gf9g6f9

PRIVATE_SOME_3RD_PARTY_APP_KEY=c41v987gtuig78ghjk43j6h50952gds
PRIVATE_SOME_3RD_PARTY_APP_PASSWORD=93kjc7830hg874njbx89724oidbf78

Я прошу прощения, если на этот вопрос уже был дан ответ, но я решил, что стоит спросить, так как могут возникнуть потенциальные проблемы безопасности, если я реализую хранилище ключей / доступ неправильно в моем приложении.

Если это небезопасно, что может быть лучшим способом для создания хранилища ключей интерфейса? Должен ли я просто определить отдельный файл public.client.keys.js или что-то в этом роде и импортировать ключи, где это необходимо, в интерфейсные модули?

Заранее спасибо за любую помощь.

...