Выбор ответа Junior Сборщики обновлено

Секреты в переменных Vite

Вопрос

В .env фронтенда на Vite лежит VITE_STRIPE_SECRET=sk_live_..., и код читает его через import.meta.env. В чём проблема?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Значение вошьётся в JS-бандл, и его увидит любой посетитель. Переменные с префиксом VITE подставляются в клиентский код на этапе сборки как строки.

Варианты ответа

  1. Никакой: .env не попадает в git, значит секрет в безопасности
  2. Переменные с префиксом VITE_ доступны только на сервере, клиент получит undefined
  3. Значение вошьётся в JS-бандл, и его увидит любой посетительправильный ответ
  4. Vite зашифрует значение, но ключ шифрования лежит в бандле

Разбор

Переменные с префиксом VITE_ подставляются в клиентский код на этапе сборки как строки. Бандл скачивает каждый браузер, значит секрет публичен. Секретные ключи живут только на бэкенде.

  • То, что .env не в git, не мешает значению попасть в собранный файл.
  • Префикс VITE_ наоборот означает «отдать клиенту».
  • Vite ничего не шифрует.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме