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
или что-то в этом роде и импортировать ключи, где это необходимо, в интерфейсные модули?
Заранее спасибо за любую помощь.