Как я изолирую свои опенсорс-проекты, чтобы вредоносный скрипт из node_modules не украл куки из браузера.
Система строится на Dev Container, так как изолировать надо и текстовый редактор (многие плагины типа Prettier используют ненадёжный код из node_modules).
У меня есть Dockerfile рабочей машины. Node.js и pnpm стоят только внутри этого контейнера, на ноутбуке инструментов разработки нет.
В Докере я запускаю ту же Fedora 40, что и на ноутбуке.
https://github.com/ai/environment/blob/main/devcontainer/Dockerfile
↓
В контейнере я на всякий случай выключаю post-install скрипты в pnpm. Это не абсолютная защиты (ещё есть импорты, плагины для ESLint и т. п.), но лучше явно запускать скрипты зависимостей, добавив инструкцию в README.md.
https://github.com/ai/environment/blob/main/devcontainer/Dockerfile#L20
У меня есть скрипт для сборки Dockerfile в образ с тегом localhost/ai-opensource.
https://github.com/ai/environment/blob/main/bin/build-devcontainer
В каждый проект я помещаю этот конфиг, он говорит редактору запустить папку внутри образа localhost/ai-opensource.
https://github.com/ai/environment/blob/main/devcontainer/devcontainer.json
В контейнере я на всякий случай выключаю post-install скрипты в pnpm. Это не абсолютная защиты (ещё есть импорты, плагины для ESLint и т. п.), но лучше явно запускать скрипты зависимостей, добавив инструкцию в README.md.
https://github.com/ai/environment/blob/main/devcontainer/Dockerfile#L20
У меня есть скрипт для сборки Dockerfile в образ с тегом localhost/ai-opensource.
https://github.com/ai/environment/blob/main/bin/build-devcontainer