web首选项在electron js中的含义是什么?为什么nodeIntegration设置为false默认值?
以下是我的电子Js文档: 它在那里给出web首选项在electron js中的含义是什么?为什么nodeIntegration设置为false默认值?,electron,Electron,以下是我的电子Js文档: 它在那里给出 let win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }) 但我找不到它的真正含义,因为它是在其他模块中使用node的,但由于electron使用铬和nodejs!为什么我们需要将其设置为false,我了解到这是关于安全的 我的问题是:- webPreference
let win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
但我找不到它的真正含义,因为它是在其他模块中使用node的,但由于electron使用铬和nodejs!为什么我们需要将其设置为false,我了解到这是关于安全的
我的问题是:-
webPreferences
到底是什么意思李>
nodeIntegration:false
?我们应该把它放在哪里,把它放在哪里感谢大家的回答和支持
webPreferences
在Electron的文档页面中介绍:
webPreferences对象
(可选)-网页功能的设置
nodeIntegration
属性描述为:
是否启用节点集成。默认值为false
当nodeIntegration:true
时,它会使NodeJS的功能可以直接从页面的脚本上下文访问,例如NodeJS实现的模块
,导出
,以及需要
。这与jQuery、RequireJS、Meteor和AngularJS不兼容,因为它们定义了自己版本的模块
、导出
、或要求
。因此,设置nodeIntegration:false将防止这种冲突
电子常见问题解答中对此进行了描述:
由于Electron应用程序可能允许用户运行任意JavaScript,或者存在允许运行任意JavaScript的漏洞,这意味着您可能不想向Electron应用程序公开NodeJS的内部JS API(因为恶意脚本可能会扰乱用户的本地文件系统,启动新进程等)所以最好保持nodeIntegration:false
,除非你知道你在做什么。注意nodeIntegration:false
是默认值。因此,如果我设置nodeIntegration:true
我可以在渲染过程中使用节点!否则我将无法使用。@sudiptdabral是的,如果我将noteeintegration
保留为false
,这是否意味着我将无法访问诸如path
、url
等模块以及渲染器脚本中的其他节点模块?