【发布时间】:2019-02-26 07:59:10
【问题描述】:
我将外部内容加载到我的电子应用程序中,这可能不安全。我想以类的形式向这个卸载的内容公开一个 API。这个 API 类应该可以访问nodeIntegration 权限,但是我不希望不受信任的外部内容拥有这样的权限。不受信任的代码被加载到webview 中,API 类通过preload 加载到webview 中。脚本加载并创建了类,它可以毫无问题地执行我想要的所有功能。但问题是,在脚本完成加载后,我想保留在全局范围内的类被销毁。这个不受信任的代码访问我的 API 的唯一方法是这个类是否保留在全局范围内。 是否可以在可以访问 nodeIntegration 的预加载脚本中实例化一个类,并使非预加载脚本文件可以访问该类?
例子:
预加载脚本:
var API = function() {
const fs = remote.require('fs');
API.createFile = function(){
/*... do stuff with fs here ...*/
}
}
非预加载脚本(不受信任的代码)
var instanceOfAPI = new API();
instanceOfAPI.createFile(); //should work
fs.writeFile(); //should NOT work
【问题讨论】:
标签: javascript node.js class security electron