Использование npm — пакетного менеджера NodeJS — сопряжено с проблемами безопасности. Штатными средствами невозможно контролировать права доступа, предоставляемые библиотекам. Вкупе с обилием микромодулей это может привести к непредсказуемым последствиям, часть из уже случившегося описана [здесь][1], и в лучших традициях экосистемы npm я на неё сошлюсь.
Под катом описывается proof-of-concept библиотеки, реализующей механизм загрузки npm-модулей с возможностью установить права подобно тому, как на Android можно выдавать приложению конкретные разрешения.
Вместо
var lib = require('untrusted-lib');
предлагается писать где-нибудь
var paraquire = require('paraquire')(module);
и затем
var lib = paraquire('untrusted-lib');
или же
var lib = paraquire('untrusted-lib', {builtin:{https:true}});
Исходный код доступен [на гитхабе][2] под LGPLv3.
Кроме того я, не будучи достаточно опытным NodeJS-разработчиком, прошу у сообщества советов и обсуждения.
[Читать дальше →][3]
[1]:
https://habrahabr.ru/company/ruvds/blog/335602/
[2]:
https://github.com/nickkolok/paraquire
[3]:
https://habrahabr.ru/post/336334/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut