Можно ли положить секретную информацию в Env переменные

«Можно ли положить секретную информацию в Env переменные» — вопрос из категории Безопасность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Почему это плохо:

  • .env файлы компилируются в бандл и доступны в браузере.
  • Переменные окружения на фронтенде не защищены — их можно увидеть через process.env или глобальные переменные.

Что делать:

  • Храните секреты на бэкенде.
  • Используйте серверные API для доступа к защищенным данным.
  • Для конфигов (например, API URL) можно использовать .env, но не для токенов, ключей и т.д.
// Плохо (видно в браузере)
const API_KEY = process.env.REACT_APP_API_KEY;

// Лучше: запрашивать токен через бэкенд
fetch('/api/get-token').then(...);