О релизе
Node.js 20 - новая LTS версия, которая пока еще не является LTS, но станет ей уже осенью. В настоящее время поддерживаются версии 16 и 18, но рекомендуется использовать 18, как текущую LTS.
Установка
Для установки Node.js 20 рекомендуется использовать nvm или другой менеджер версий Node.js, которые облегчает миграцию и смену версии налету. Команда для установки через NVM:
Permissions
Node.js критиковали за отсутствие безопасности, поскольку он может получить доступ фактически ко всей системе, где он запущен, без ограничений.
Однако, в новой версии Node.js 20 добавлены экспериментальные permissions, которые позволяют ограничить поведение процесса. Для этого используется флаг --experimental-permission и дополнительные параметры, такие как --allow-fs-read="/*".
Создадим простой index.js файл:
Теперь запустим как обычно:
Все ок, но так мы можем прочитать любой файл в системе и это проблема. Как раз новые permissions позволяют нам это ограничить:
Чтобы ограничить доступ к файлам, нужно запустить команду node с флагом --experimental-permission. При этом, если попытаться прочитать файл index.js, будет выдана ошибка. Чтобы разрешить доступ к определенному файлу, можно использовать дополнительный параметр --allow-fs-read="/*":
Также есть возможность проверить, есть ли у нас определенный доступ, что позволяет работать с разрешениями непосредственно в коде приложения:
В этом случае, если перезапустить процесс, получим false.
Другие ограничения
Полностью аналогично мы можем ограничить создание новых процессов с помощью --allow-child-process и --allow-worker.
Замечу, что на текущий момент это экспериментальная возможность Node.js к которой следует относиться с осторожностью. Пока это можно рассматривать как один из важных шагов в решении текущих проблем Node.js.
Заключение
Если вы хотите детальнее разобраться в Node.js я приготовил для вас подробный курс по его основам и продвинутым концепциям.
Полный курс - Node.js - с нуля, основы и построение архитектуры приложений
- 18 часов коротких лекций по 10 - 15 минут
- 8 упражнений для закрепления на практике
- 9 тестов для проверки знаний
- Рейтинг ⭐ 4.9 на основании отзывов
- 30-ти дневная гарантия возврата денег