web首选项在electron js中的含义是什么?为什么nodeIntegration设置为false默认值?

web首选项在electron js中的含义是什么?为什么nodeIntegration设置为false默认值?,electron,Electron,以下是我的电子Js文档: 它在那里给出 let win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }) 但我找不到它的真正含义,因为它是在其他模块中使用node的,但由于electron使用铬和nodejs!为什么我们需要将其设置为false,我了解到这是关于安全的 我的问题是:- webPreference

以下是我的电子Js文档: 它在那里给出

  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
    等模块以及渲染器脚本中的其他节点模块?