Email or username:

Password:

Forgot your password?
Андрей Ситник

Как снижаем риски взлома через npm-зависимости в RSS-читалке.

1. Все зависимости ставим только для тестов. Но всё равно вызывает pnpm install --ignore-scripts чтобы исключить атаку через postinstall-скрипт.

github.com/hplush/slowreader/b

2. Сборка сервера идёт в отдельной задаче, где ставим уже только production зависимости и только зависимости проекта сервера (а не все из монорепо).

Меньше зависимостей — меньше риска.

github.com/hplush/slowreader/b

2 comments
Андрей Ситник

3. Сервер собираем в один JS-файл с помощью esbuild, чтобы вырезать ненужные файлы из зависимостей.

github.com/hplush/slowreader/b

Этот статичный собранный файл через артифакты передаём в другую задачу.

4. Шаг деплоя, единственный у кого есть доступ к серверам, вообще никаких зависимостей не ставит.

Он лишь достаёт статичный JS-файл сервера, собирает докер-образ и заливает его на Google Cloud Run.

github.com/hplush/slowreader/b

3. Сервер собираем в один JS-файл с помощью esbuild, чтобы вырезать ненужные файлы из зависимостей.

github.com/hplush/slowreader/b

Этот статичный собранный файл через артифакты передаём в другую задачу.

4. Шаг деплоя, единственный у кого есть доступ к серверам, вообще никаких зависимостей не ставит.

Андрей Ситник

5. При этом мы не использует JSON-файл авторизации.

Вместо этого мы разрешили Google Cloud выдавать временные токены доступа только для ГитХаба.

Так что если токен утечёт, его уже нельзя будет применить, так как он закончит срок жизни.

github.com/hplush/slowreader/b

Go Up