Найти в Дзене
PurpleSchool

Node js 20 - экспериментальные permissions

Оглавление

О релизе

Node.js 20 - новая LTS версия, которая пока еще не является LTS, но станет ей уже осенью. В настоящее время поддерживаются версии 16 и 18, но рекомендуется использовать 18, как текущую LTS.

Установка

Для установки Node.js 20 рекомендуется использовать nvm или другой менеджер версий Node.js, которые облегчает миграцию и смену версии налету. Команда для установки через NVM:

-2

Permissions

Node.js критиковали за отсутствие безопасности, поскольку он может получить доступ фактически ко всей системе, где он запущен, без ограничений.

Однако, в новой версии Node.js 20 добавлены экспериментальные permissions, которые позволяют ограничить поведение процесса. Для этого используется флаг --experimental-permission и дополнительные параметры, такие как --allow-fs-read="/*".

Создадим простой index.js файл:

-3

Теперь запустим как обычно:

-4

Все ок, но так мы можем прочитать любой файл в системе и это проблема. Как раз новые permissions позволяют нам это ограничить:

-5

Чтобы ограничить доступ к файлам, нужно запустить команду node с флагом --experimental-permission. При этом, если попытаться прочитать файл index.js, будет выдана ошибка. Чтобы разрешить доступ к определенному файлу, можно использовать дополнительный параметр --allow-fs-read="/*":

-6

Также есть возможность проверить, есть ли у нас определенный доступ, что позволяет работать с разрешениями непосредственно в коде приложения:

-7

В этом случае, если перезапустить процесс, получим false.

Другие ограничения

Полностью аналогично мы можем ограничить создание новых процессов с помощью --allow-child-process и --allow-worker.

Замечу, что на текущий момент это экспериментальная возможность Node.js к которой следует относиться с осторожностью. Пока это можно рассматривать как один из важных шагов в решении текущих проблем Node.js.

Заключение

Если вы хотите детальнее разобраться в Node.js я приготовил для вас подробный курс по его основам и продвинутым концепциям.

Полный курс - Node.js - с нуля, основы и построение архитектуры приложений

18 часов коротких лекций по 10 - 15 минут

8 упражнений для закрепления на практике

9 тестов для проверки знаний

- Рейтинг ⭐ 4.9 на основании отзывов

- 30-ти дневная гарантия возврата денег