当前位置: 首页 > news >正文

工业互联网六大应用场景泉州seo管理

工业互联网六大应用场景,泉州seo管理,网页设计与网站建设案例课堂,wordpress jquery版本背景: electron大家平时为了方便使用,或是一些网上demo的引导,会让渲染进程的业务界面支持直接使用nodejs,这种开发方式有一定的安全隐患,如果业务界面因为xss之类的漏洞被注入其他代码,危害非常大&#x…

背景:

electron大家平时为了方便使用,或是一些网上demo的引导,会让渲染进程的业务界面支持直接使用nodejs,这种开发方式有一定的安全隐患,如果业务界面因为xss之类的漏洞被注入其他代码,危害非常大,属于最高等级的安全问题。那么怎样更好的避免发生这种问题呢?

一.禁止渲染进程页面直接使用nodejs,webPreferences这么配置

win = new BrowserWindow({webPreferences: {preload:"./preload.js",// Warning: Enable nodeIntegration and disable contextIsolation is not secure in production// Consider using contextBridge.exposeInMainWorld// Read more on https://www.electronjs.org/docs/latest/tutorial/context-isolationnodeIntegration: true,//webviewTag: true,contextIsolation: true,//隔离},});

二.通过preload配置,暴露允许使用调用的接口,preload配置的配置方式如上代码,内容如下例子:

import { contextBridge, ipcRenderer } from 'electron'contextBridge.exposeInMainWorld('electronAPI', {openFile: () => ipcRenderer.invoke('dialog:openFile')
})

在渲染进程界面采用window.electronAPI.openFile()方式调用,为了让渲染进程足够安全,建议设计这里的接口尽量做到仅暴露必要函数和参数,不要直接把诸如electron对象暴露给页面界面,这种事情干多了,这个安全隔离的意义就会逐渐消失。

渲染进程与preload通讯的另外一种方式,通过postmessage,举例

preload.js

window.onmessage = (ev) => {ev.data.payload === "removeLoading" && removeLoading();
};

渲染页js

postMessage({ payload: "removeLoading" }, "*");

这种方式相比第一种更加安全一点(暴露的信息更加隐蔽),但使用起来比较麻烦,可能需要进一步封装

三:其他问答:

1.preload.js在跳转到新地址后还会不会存在?

答:会,每次发生跳转preload.js都会重新加载进来,跟普通加载js一样,所以这个js的变量并非持久化的

2.preload跟主进程通讯方式

方式一:invoke和handle的组合

//preload.js
let a = ipcRenderer.invoke('xxx')//main.js
ipcMain.handle('xxx', async ()=>{
return "123"
})

方式二:on和send的组合

// 在主进程中.
const { ipcMain } = require('electron')
ipcMain.on('asynchronous-message', (event, arg) => {console.log(arg) // prints "ping"event.reply('asynchronous-reply', 'pong')
})ipcMain.on('synchronous-message', (event, arg) => {console.log(arg) // prints "ping"event.returnValue = 'pong'
})
/在渲染器进程 (网页) 中。
const { ipcRenderer } = require('electron')
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')) // prints "pong"ipcRenderer.on('asynchronous-reply', (event, arg) => {console.log(arg) // prints "pong"
})
ipcRenderer.send('asynchronous-message', 'ping')

http://www.yayakq.cn/news/433364/

相关文章:

  • 湖南电子科技网站建设个人网页设计作品手绘
  • 网站的布局方式有哪些成都有名的软件开发公司
  • 网站按照规模分为哪几类工业和信息化部教育与考试中心
  • 淘宝客做网站推广赚钱吗网站建设文化事业建设费
  • wordpresS追踪访问轨迹企业网站seo报价
  • 山东省建设厅网站维护电话wordpress 邀请码插件
  • 建设网站的重点与难点在于代理注册企业登记
  • 外贸网站推广怎么做全屋整装十大排名全国前十强
  • 58同城北京网站建设网站设计基本流程
  • 河北省城乡住房和城乡建设厅网站360云主机可以建设网站吗
  • 设计企业品牌网站自媒体账号注册平台
  • 旅游网站排名前5位的.net 导航网站模板
  • 建设官方网站企业官网能做视频的软件有哪些
  • 建成区违法建设治理网站中国十大猎头公司
  • 电子商务网站建设产品1号网站建设
  • 怎么自己做网站吓别人企业网站安全建设方案
  • 永川网站制作联系电话上海网校排名
  • 主流搭建网站湖州房产网站建设
  • 宁波网站搭建定制非模板网站建设湖北海厦建设有限公司网站
  • 免费网站建站排行榜谷歌浏览器官网
  • 铁岭卫生职业学院官方网站建设用react做的网站
  • 手机餐饮网站开发app设计风格
  • 星乐seo网站关键词排名优化百度联盟app
  • 如何进行网站的推广php mysql 网站开发实例教程
  • 网站共享备案找人做软件去哪个网站找
  • 苏州高端网站移动网站建设方面
  • 网站备案变更个人网站介绍模板
  • 嘉祥网站seo助君网络
  • 网站界面ui设计义乌住房与城乡建设官网
  • 南宁网站制作多少钱郑州外贸网站推广