首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Fuse | Electron 安全

,你说他默认即安全吧,还没有把安全的值设置为默认,奇奇怪怪 0x03 如何查看程序的 fuse 检查一个应用程序的 fuse 设置 https://www.electronjs.org/zh/docs...openssl-config --use-bundled-ca --use-openssl-ca --force-fips --enable-fips 这些标志无效是因为 Electron 在构建 Node.js 的 crypto...模块时使用 BoringSSL 而不是 OpenSSL cli 选项可以参考 https://nodejs.org/api/cli.html 现在我编译一个 runAsNode 为 Enabled 的程序...NODE_EXTRA_CA_CERTS https://nodejs.org/api/cli.html#node_optionsoptions https://github.com/nodejs/node...的漏洞模型保持一致,不考虑本地物理攻击 其实这些 fuse 的问题是因为在一场安全大会上,有位安全研究员提出来的,并且还制作了一个检测工具,具体官方声明以及检测工具查看下方链接 https://www.electronjs.org

10910
您找到你想要的搜索结果了吗?
是的
没有找到

Electron 应用的流水线设计

Electron 是由 Github 开发,用 HTML,CSS JavaScript 来构建跨平台桌面应用程序的一个开源库。 本文将介绍 Electron 桌面应用的流水线的设计。...如在“Mac平台下构建”的阶段中, agent{label"mac && nodejs"} 指定了只有 label 同时包括了 mac nodejs 的 agent 才能执行构建。...笔者希望版本号能反应出构建号源代码的 commit id。函数 generateVersion 用于生成此类版本号。生成的版本号,看起来类似这样: 1.0.0-f7b06d0.28。...完整源码地址:https://github.com/zacker330/electronjs-pipeline-demo 小结 上例中,Electron 应用的流水线设计思路,不只是针对 Electron.../nodejs Electron 版本管理:https://electronjs.org/docs/tutorial/electron-versioning#semver 审校 LinuxSuRen(https

79630

预加载脚本 | Electron 安全

Preload) 是一个比较让我意外的内容,可能因为学习 Electron 时就使用了官网推荐的安全开发案例,所以一直以为预加载脚本的 Node.js 就是被限制过的,但是随着最近的几篇文章的实验发现并不是...因为计时器函数是全局函数,所以不需要调用 require('timers')来使用API。...query=param&another=value'); console.log(url); 接下来应该是一些原本渲染进程没有或不完整而补充进来的一些方法 Buffer https://nodejs.org...contextBridge crashReporter ipcRenderer nativeImage webFrame webUtils 这里的 contextBridge 是用来向渲染进程暴露变量/常量函数的方法...,这也就意味着每个新功能,如果需要主进程参与可能都会创建不止一个新的函数 如果开发者直接将 ipcRenderer 或 ipcRenderer.invoke 这种 API或非必要函数直接暴露给渲染进程,

12510

electron 进程间通信

分离关注点:主进程渲染进程在 Electron 中有不同的职责关注点。主进程负责管理应用程序的生命周期、系统级功能与底层操作系统的交互,而渲染进程负责处理用户界面与用户的交互。...预加载脚本(preload) Electron 不推荐在渲染进程开启Nodejs 环境,那也就意味着我们无法在渲染进程中使用NodeJS API,但有时候我们又真的很需要使用NodeJS API。...从 Electron 20 开始,预加载脚本默认 沙盒化 ,不再拥有完整 Node.js 环境的访问权,实际上,这意味着我们只拥有一个 require 函数,这个函数只能访问一组有限的 API。...ipcMain.handle() 方法可以为指定频道注册处理函数,这个处理函数可以接收请求的参数并执行相应的操作,然后返回一个结果给渲染进程。...://www.electronjs.org/zh/docs/latest/api/ipc-main https://www.electronjs.org/zh/docs/latest/api/ipc-renderer

9510

如何在浏览器nodejs中使用原生接口获得相同的hash?

从名字就可以看出,random负责随机算法,也就是说,基于Web Crypto API我们可以在浏览器端实现真正的随机,而不是Math.random这种伪随机。...接下来,我们来到nodejs这一端。 由于Web Crypto API是底层原生实现,因此它可以被移植(,类似的可以被移植到原生模块,其实有很多,就看nodejs官方愿不愿意去做)。...nodejs通过crypto模块暴露了webcrypto接口,而该接口就提供了浏览器端相同的实现。...接下来,我们就来实现一个与上面的sha函数具有相同功能的nodejs函数: const { webcrypto } = require('crypto'); const { TextEncoder }...结语 本文带你了解了Web Crypto API,让你知道可以通过nodejs的原生模块实现浏览器和服务端完全相同的摘要算法。

24720

nodeIntegration | Electron安全

,这个特性被默认设置为 false https://releases.electronjs.org/releases/stable?...来进行安装,高版本的 Nodejs 用 Deepin Linux 进行安装测试 安装 Fiddle https://www.electronjs.org/zh/fiddle 安装 nvm https:...12.0.0 nvm install 12.0.0 nvm use 12.0.0 新建文件夹并创建 NodeJS 项目 https://www.electronjs.org/zh/docs/latest...,如下 相同的配置在不同版本下表现的结果并不完全相同,在 5.019.0 之间的重大更改中,并未提及 sandbox 对页面影响的变化,但实际上至少在 19.0 版本开始,预加载脚本想要 NodeJS...的能力,只有当 nodeIntegration 被设置为 true 时,渲染进程(这里不含 preload) iframe 才有可能获取到执行 NodeJS 的能力,但也同时配合关闭上下文隔离沙箱

22210

Electron 安全与你我息息相关

Electron 架构 Chromium 具备网页渲染能力, Nodejs 具备操作系统API的能力 因此从架构上,Electron 分为两个部分:主进程渲染进程 2....Nodejs 相关,好像是要在子 frame 中启用 Nodejs 功能,其实并不是,这个属性设置为 true 时,预加载脚本会在每个子 frame 中加载,虽然预加载脚本具备一定的 Nodejs 的能力...1 所以这里其实是关闭了同源策略,所以渲染进程具备执行 Nodejs 能力,同时具备远程跨域加载 JavaScript/NodeJs 代码,这就给攻击者开发者同时开了小绿灯 Goby 将前端代码都放在了一个...Electron 写的,至少最新版不是,既然这么多漏洞都可以代码执行,是不是最新版依旧是 nodeIntegration 被设置了 true 同样的方式解包 app.asar 却发现之前不太一样 解包后还是一个二进制程序...代码也将使用覆盖的函数

68710

【番外】ElectronArcGIS API for JavaScript的开发

概述 写这篇文章主要是想折腾下,因为我看到JS可以通过Electron来做桌面应用程序,那么Electron能不能ArcGIS API for JavaScript进行结合开发呢,这样一来是不是可以从某种意义上理解成我们的...具体操作 Electron环境搭建 1、Electron环境搭建之前要求大家的机子上要有NodeJS环境,关于NodeJS环境的搭建过程,大家直接网上找资料即可,下载安装包之后直接安装就可以,这篇文章不做详细介绍...2、NodeJS环境安装部署之后,我们就可以搭建Electron环境了,具体搭建环境其实也直接可以参考官网文档,写的很详细,地址如下: https://www.electronjs.org/docs/tutorial...-- https://electronjs.org/docs/tutorial/security#csp-meta-tag --> <meta http-equiv="Content-Security-Policy...引入ArcGIS API for JavaScript,地图实例化 1、在index.html文件里,引入ArcGIS API for JavaScript相关的css样式包<em>和</em>JS文件,如下: <link

84020

Node.js 10.0.0 正式版发布 大量改进修复

Node-ChakraCore 引擎,其功能亮点包括: 全面支持 N-API 可轻松通过新的 Visual Studio Code Extension 进行 Time-Travel 调试 支持 TTD 的生成器异步函数...支持 Inspector 协议 增强稳定性其他各种改进 Node.js 10.0.0 还包含以下更新: N-API native addons API 已从实验状态毕业 Async_hooks 过时的实验性...Crypto crypto.createCipher()  crypto.createDecipher() 方法已被弃用,并被 crypto.createCipheriv()  crypto.createDecipheriv...crypto.DEFAULT_ENCODING 属性已弃用。 新增 ECDH.convertKey() 方法。 crypto.fips 属性已弃用。...: https://nodejs.org/dist/v10.0.0/win-x64/node.exe macOS 64-bit Installer: https://nodejs.org/dist/v10.0.0

99010

在 Node.js 中引入 Golang ,会让它更快吗?

这篇文章并不是一个 Node.js Golang 的语言对比,而是在 Node.js 开发服务的角度,尝试在某些场景下引入 Golang(让它去执行一些 CPU 密集型操作),看看会不会更快。...,可以与其他函数或方法同时运行(适用于 CPU 密集型任务) 简单 - 只有 25 个关键词 nodejs-golang/WebAssembly(丑陋的人) 优点: 随处可用 补充 JavaScript...+ 网络请求延迟 而对于 Node.js WebAssembly,它将只是函数的执行时间 最后的决斗 1....= require('crypto'); const md5 = (num) => { for (let i = 0; i < num; i++) { crypto.createHash...如果你是唯一熟悉这个语言的人,则向项目添加这个新语言并不是一个好主意 对我来说,不同语言的服务最好 “保持分离”。

2.8K40

使用 JavaScriptService 在.NET Core 里实现DES加密算法

文章《ASP.NET Core love JavaScript》《跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形功能的若干问题》为我们扩展.NET Core...Crypto利用OpenSSL库来实现它的加密技术,它提供OpenSSL中的一系列哈希方法,包括hmac、cipher、decipher、签名验证等方法的封装。...Crypto官方文档:http://nodejs.org/api/crypto.html, 博客文章http://blog.fens.me/nodejs-crypto/ 写的非常详细。...,它将在.NET 程序中被调用,通过传入一个 Node风格的回调函数三个参数来计算结果。...在NodeJS中,一个 JS 文件即代表一个模块,module.exports的意思是把当前函数作为一个对象提供出去以供调用,我们这里有两个函数分别代表加密/解密。

1.1K90

关于NodeJS工作原理的五个误解

误解1 — EventEmitter 事件循环相关 编写 NodeJS 应用程序时会大量使用 NodeJS EventEmitter,但是人们误认为 EventEmitter 与 NodeJS Event...强烈建议不要以这种不一致的方式(在此功能同时执行同步异步操作)编写函数,因为这会使应用程序的行为无法预测。...由于这个原因,某些加密函数 zlib 函数的异步版本以在 libuv 线程池上执行计算的方式编写,这样它们就不会阻塞事件循环。...其中一些功能是: crypto.pbkdf2() crypto.randomFill() crypto.randomBytes() 所有 zlib 异步功能 但是,在撰写本文时,还无法使用纯 JavaScript...误解5 - 不应使用NodeJS编写CPU密集型应用程序 这并不是真正的误解,而是关于 NodeJS 的一个众所周知的事实,现在由于在 Node v10.5.0 中引入 Worker Threads

1.6K20

crypto加密模块

Nodejs用C/C++实现这些算法后,通过cypto这个模块暴露为JavaScript接口,这样用起来方便,运行速度也较直接使用JavaScript快。...crypto模块提供了AES支持,但是需要自己封装好函数,便于使用: const crypto = require('crypto'); function aesEncrypt(data, key)...加密结果通常有两种表示方法:hexbase64,这些功能Nodejs全部都支持,但是在应用中要注意,如果加解密双方一方用Nodejs,另一方用Java、PHP等其它语言,需要仔细测试。...DH算法基于数学原理,比如小明小红想要协商一个密钥,可以这么做: 小明先选一个素数一个底数,例如,素数p=23,底数g=5(底数可以任选),再选择一个秘密整数a=6,计算A=g^a mod p=8,...在这个过程中,密钥2并不是小明告诉小红的,也不是小红告诉小明的,而是双方协商计算出来的。

1.4K20

crypto加密模块

Nodejs用C/C++实现这些算法后,通过cypto这个模块暴露为JavaScript接口,这样用起来方便,运行速度也较直接使用JavaScript快。...crypto模块提供了AES支持,但是需要自己封装好函数,便于使用: const crypto = require('crypto'); function aesEncrypt(data, key)...加密结果通常有两种表示方法:hexbase64,这些功能Nodejs全部都支持,但是在应用中要注意,如果加解密双方一方用Nodejs,另一方用Java、PHP等其它语言,需要仔细测试。...DH算法基于数学原理,比如小明小红想要协商一个密钥,可以这么做: 小明先选一个素数一个底数,例如,素数p=23,底数g=5(底数可以任选),再选择一个秘密整数a=6,计算A=g^a mod p=8,...在这个过程中,密钥2并不是小明告诉小红的,也不是小红告诉小明的,而是双方协商计算出来的。

1K10

electron概述

(nodejs 是一个基于 Chrome V8 引擎的 JavaScript 运行环境, 可以让 javascript 运行在后端)的一个跨平台开发框架, 可以跨Linux/Windows/MacOS...由于 VScode 的带动, 基于 Electron 的应用越来越多, 同时 nodejs 社区也持续的活跃. ?...+代码 缺点 ● 浏览器限制, 无法实现全兼容视频播放器 与 Python 前后台的构架对比: ● 不依赖浏览器, 程序打包方便 ● 不存在前后台通信, 所以节省了大量繁琐的数据同步代码, 页面实时性性能更好...环境搭建 ● 从 https://nodejs.org/zh-cn/ 下载 nodejs, 然后安装, 请使用 LTS 稳定版。...https://code.visualstudio.com/download 下载安装 VScode, 作为开发 IDE 第一个 electron 程序 最简Demo 参考官方文档: https://electronjs.org

1.8K30
领券