我使用Sails.js创建了一个web服务器,并希望允许第三个开发人员创建可从网页(存储)安装的node.js插件。
我的问题是,我不希望这个插件需要sails (或其他关键模块),并且能够访问数据库和服务,并做他们想做的事情。例如,使用fs并删除所有文件。
我怎么能这么做?我不知道node.js是否能在这个目录上锁定一些脚本。
发布于 2015-06-10 22:57:20
我不认为节点公开了一些沙箱功能,所以当您将js代码加载到节点时,代码可以做它想做的事情。
从您的描述来看,您的插件更像是浏览器javascript代码,所以我认为您可以使用无头浏览器执行代码并检索结果。我从来没有一个人试过,但应该会成功的。您只需弄清楚如何传递参数到插件并得到结果,而且性能也会很差,因为无头浏览器是相当沉重的。试着看
http://phantomjs.org/
另一种解决方案是直接在节点内部运行插件,但在运行之前对代码进行清理。有一些项目,如:
http://gf3.github.io/sandbox/
https://github.com/asvd/jailed
他们可以帮助你限制插件的能力。
不管怎样,你确定吗?在我所见过的任何主要CMS平台上(wordpress,joomla,drupal,救生筏)该平台的作者信任插件作者,插件可以随心所欲。
https://stackoverflow.com/questions/30679673
复制相似问题