[#] Paraquire, или Перестаньте доверять библиотекам
habrabot(difrex,1) — All
2017-08-25 12:00:06


# TL; DR



Использование 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