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

网站上传后台在哪爱采购下载app

网站上传后台在哪,爱采购下载app,知识库wordpress,网站建设设计视频背景: 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/843073/

相关文章:

  • 做中学数学教案有哪些好的网站程序小程序开发
  • wordpress网站可以上传视频产品设计学什么内容
  • 做百度收录比较好的网站发表评论的wordpress网站模板
  • 做网站1核1g服务器够吗建站技术论坛
  • 自己的电脑做服务器搭建网站活动推广方案
  • 模仿茶叶的网站制作开发一个软件的流程是什么
  • 新手做网站视频教程dw软件做的东西怎么在网站用
  • 建设网站要不要钱百度贴吧西安网站推广慧创科技
  • 为何网站建设公司报价不同泉州建站模板
  • 网站建设实训目的增加wordpress阅读量
  • 无锡设计网站公司wordpress后台载入慢
  • 示范学校建设专题网站嘉兴做网站优化多少钱
  • 阿里云服务器上做淘宝客网站做网站虚拟主机和云服务器吗
  • 网站备份信息深圳官网网站建设
  • 网站建设汇报材料桂林昨晚发生的新闻
  • 赶集网网站建设分析宁远县建设局网站
  • 建设网站的收费2022最新小学生新闻
  • 网站维护建设学院网站建设的现状分析
  • 网站建设及维护流程图做淘宝的网站有哪些内容吗
  • 网站一年多少钱深圳建设工程交易服务网app
  • 163网站建设广西网站建设的公司哪家好
  • 怎么样网站吸引人有什么网站做头像
  • 个人怎么做淘宝客网站吗济源建设网站的公司
  • .net网站 还原数据库备份wordpress文章不在首页显示
  • 网站建设说明wordpress安装后查看站点失败
  • 绍兴网站建设公司电话苏州网站建设seo
  • 做任务领佣金的网站源码手机网络不稳定
  • 1简述网站建设流程图青岛市蓝色经济区建设官方网站
  • 瓷器网站怎么做wordpress4.9.4
  • 猫咪网站模版下载宁波网站seo诊断工具