节点js插件的权限

我使用Sails.js创build了一个Web服务器,并希望允许第三个开发人员创build可从网页(商店)安装的node.js插件。

我的问题是我不希望这个插件需要帆(或其他关键模块),并有权访问数据库和服务,并做他们想要的。 例如使用fs并删除所有文件。

我怎样才能做到这一点 ? 我不知道如果node.js可以locking一些脚本在这个自己的目录

我不认为这个节点公开了一些沙箱function,所以当你把一个js代码加载到节点中,代码就可以做它想做的事情。

从你的描述你的插件更像是浏览器的JavaScript代码,所以我认为你可以使用无头浏览器来执行你的代码并检索结果。 我从来没有尝试过,但它应该工作。 你只需要弄清楚如何将parameter passing给插件并得到结果,而且由于无头浏览器相当重,性能也会很差。 试着看看

http://phantomjs.org/

另一个解决scheme是直接在节点内部运行插件,但在运行之前清理代码。 有一些项目如:

http://gf3.github.io/sandbox/

https://github.com/asvd/jailed

他们可以帮助您限制插件的权力。

无论如何,你确定吗? 在我见过的任何主streamCMS平台(WordPress,Joomla,Drupal,Liferay等)中,平台的作者相信插件的作者和插件总是可以做他们想做的。