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

Fuse | Electron 安全

此环境变量可用于将各种自定义选项传递到Node.js运行时,并且通常不被生产中应用程序使用。...在Electron原始版本中,这种行为是Electron应用程序核心,但不再需要,因为应用程序现在应该自定义协议中提供本地文件。...需要安装 @electron/fuses 依赖包 npm i @electron/fuses 检查应用程序 fuse npx @electron/fuses read --app /Applications...我们接下来就看一下这些特性可能带来危害 1. runAsNode runAsNode 特性含义是程序当作普通 Node.js 进程启动,如果是普通 Node.js ,那么可以给该程序传递很多启动参数...尝试通过设置环境变量 ELECTRON_RUN_AS_NODE=1 并传递 -i 参数 成功实现本地命令执行 Windows 和 MacOS 也成功执行系统命令 2. nodeCliInspect

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

Electron自动化测试技术选型调研

应用程序分发:Electron提供了打包和分发应用程序工具。开发人员可以将应用程序打包为可执行文件安装程序,并将其发布到应用商店通过其他方式分发给用户。...社区庞大,可以获得广泛支持和资源。 Selenium不是为桌面应用程序设计,因此在测试Electron应用程序时可能会遇到一些限制和问题。...执行速度相对较慢:由于需要通过启动浏览器、模拟用户交互等步骤,使用Puppeteer进行自动化测试可能会比其他测试框架执行速度慢一些。...测试环境配置:使用Puppeteer进行Electron自动化测试需要配置好相关环境,包括安装正确版本Chromium浏览器和Puppeteer库,这可能会带来一些麻烦。...+启动应用 支持一般 由于Hades采用是Puppeteer,优先考虑使用Puppeteer 后续封装一个启动electron操作,将它加在beforeAll里,就可以复用之前旧UI自动化测试代码了

1.1K30

Robot Framework测试框架用例脚本设计方法

测试数据以一种简单易于编辑表格格式。当 Robot Framework 启动时候,启动测试数据,执行测试用例,并且生成日志和报告。核心框架句柄与被测系统通过测试库进行交互。...测试库能够直接使用应用程序接口或者使用更低层次测试工具作为驱动。...举例: 首先,要给Test二级模块加载测试库和资源文件,这样方便测试脚本能调用测试关键字以及变量参数传递。...5、在common_keywords.html创建login用户关键字通用登录子模块,并设计脚本和参数设置,如下图所示: ? 由图可知,参数全局变量传递过来给脚本调用。...这四行数据脚本会按每行数据参数传递过去。 ? 测试模板就是调用资源文件OS_Diff_File用户关键字,把模板数据传递给关键字定义参数提供调用。

2.5K30

预加载脚本 | Electron 安全

预加载脚本职责来看,也确实可能用使用案例如下 const { EventEmitter } = require('events'); class MyEmiter extends EventEmitter...因为计时器函数是全局函数,所以不需要调用 require('timers')来使用API。.../url-to-submit' }) 如何构建崩溃日志收集系统可以点击上方链接 nativeImage 使用 PNG JPG 文件创建托盘、dock和应用程序图标。...,封装成了一个函数,这也就意味着每个新功能,如果需要主进程参与可能都会创建不止一个新函数 如果开发者直接将 ipcRenderer ipcRenderer.invoke 这种 API非必要函数直接暴露给渲染进程...,就可能导致渲染进程任意发起 IPC 通信、获取敏感信息等 假设程序有很多和操作系统命令执行结果相关功能,所以主进程有一个接收参数并执行通信,这样 Preload 脚本中直接传递参数,复用这一个监听即可

12110

第四章-使用本机文件对话框和帮助进程间沟通 | Electron实战

在创建BrowserWindow实例之前,应用程序已经在侦听ready事件。本章稍后,我们将学习如何UI触发此功能。在下一章中,我们还将学习如何应用程序菜单中触发它。 ?...图4.1 我们应用程序将在启动时触发“打开文件”对话框。到本章结束时,此功能将被UI触发对话框功能所取代。 您可以使用Electron dialog模块创建本机对话框。...但是我们如何将文件内容发送到渲染器进程呢?如何UI中触发主进程中getFileFromUser()函数? 在构建传统web应用程序时,我们必须处理类似的问题。...这并不完全相同,因为所有的代码都在客户机计算机上运行,但是考虑一下我们通常如何构建web应用程序,可以作为理解如何构造Electron应用程序一个有用比喻。 参见图4.9。 ?...在本书中,我们使用了requireElectron,Node标准库和第三方库中提取功能,但这是我们第一次将其与我们代码一起使用。让我们花几分钟回顾一下它是如何工作

1.9K20

第二章 你第首个Electron应用 | Electron in Action(中译)

启动主进程 主进程生成渲染进程 利用Electron限制宽松优点构建通常在浏览器无法构建功能 使用Electron内置模块来回避一些常见问题 在第一章中,我们从高层次上...Electron不是一个框架——它不提供任何框架,也没有关于如何构造应用程序命名文件严格规则,这些选择都留给了我们这些开发者。...在后面的章节中,我们将看到如何定制这些属性,但是目前默认值已经足够好了。我们所有的代码文件都是完全空白。因此,这个应用程序还有很多操作需要去做,但是它确实存在并正确启动。我们认为这是一场暂时胜利。...如果你还记得第一章,我们可以创建一个多个渲染器进程主进程开始。我们首先通过编写main.js代码,迈出我们应用程序第一步。 要处理Electron,我们需要导入electron库。...我们可以使用Browser-window模块主进程创建渲染进程 Electron允许我们直接第三方服务器发出请求,并不需要中间服务器代理。传统web应用程序则不允许这样做。

4.6K30

Electron安装过程深入解析(读完此文解决Electron安装失败导致无法启动,无法打包问题)

, SET是为一个变量赋值, %*是执行命令时输入参数, 整段命令脚本意思是用node执行Electron包内cli.js文件, 并把所有命令行参数一并传递过去。...下面我们就来看看Electron包内cli.js是如何启动Electron。 5....使用命令启动Electron 当开发者在当前项目下执行npm run dev时,其实就是执行electron.cmd批处理文件, 并传入了一个命令行参数...., 让子进程执行Electron可执行文件,并把当前进程命令行参数传递给了这个子进程。...至于Electron可执行程序是如何接收这个参数如何执行这个参数指向程序文件,我们后文会有详细描述。 6.

7.4K60

如何开发Vite3插件构建Electron开发环境

这个窗口加载了一个 Url 路径,这个路径是以命令行参数方式传递应用程序,而且是命令行第三个参数。...,如果已经成功启动了,那么就启动 Electron 应用,并给它传递两个命令行参数,第一个参数是主进程代码编译后文件路径,第二个参数是 Vue 页面的 http 地址,这里就是 http://127.0.0.1...我们是 通过 Node.js child_process 模块 spawn 方法启动 electron 子进程,除了两个命令行参数外,还传递了一个配置对象。...http 服务启动之前,我们 使用 esbuild 模块完成了主进程 TypeScript 代码编译工作 ,这个模块是 Vite 自带,所以我们不需要额外安装,可以直接使用。...下一讲我们将在本节课基础上,进一步介绍如何使用 Vite 插件制作 Electron 应用安装包。

1.7K20

Python 自动化指南(繁琐工作自动化)第二版:十二、网络爬取

*这就是你程序要做: 从命令行参数剪贴板获取街道地址 打开网络浏览器,进入该地址谷歌地图页面 这意味着您代码需要执行以下操作: sys.argv中读取命令行参数。 读取剪贴板内容。...如果你需要从网上下载东西,只需使用requests模块。 接下来,做一个简单测试来确保requests模块正确安装。...内置 Python 函数min()返回传递给它最小整数浮点参数。(还有一个内置max()函数,它返回传递给它最大参数。)...启动Selenium来控制浏览器 下面的例子将向你展示如何控制 Firefox 网络浏览器。如果你还没有火狐,你可以getfirefox.com免费下载。...(您可能需要为此程序设置一个单独电子邮件帐户。) 这是给你程序添加通知功能好方法。你也可以写一个类似的程序,脸书 Twitter 账户发送信息。

8.6K70

10分钟实现Typora(markdown)编辑器

在顶部有一系列按钮,允许用户文件系统加载文本文件,并将结果写入剪贴板文件系统。 在应用程序第一阶段,我们构建了以下界面。在图3.1。...在讨论如何使用HTML和CSS实现列时,很少使用easy这个词。 幸运是,我们可以自信地使用添加到CSS3名为Flexbox新布局模式来快速定义应用程序两列布局。...用户不习惯在本地应用程序中看到这种情况,我们可以通过重新思考如何启动窗口来避免这种情况。 如果您认为应用程序第一次启动虚无闪光是无意义,考虑主进程中代码:它创建一个窗口,然后在其中加载内容。...macOS上Command-Shift-B时,您电子应用程序启动。...Chrome开发工具在所有渲染器进程中都可用,可以默认电子应用程序、键盘快捷键主进程触发。 此时Electron中还没有完全支持Node Inspector检查器。

2.6K50

第三章 构建Markdown应用程序 | Electron in Action(中译)

在顶部有一系列按钮,允许用户文件系统加载文本文件,并将结果写入剪贴板文件系统。 在应用程序第一阶段,我们构建了以下界面。在图3.1。...在讨论如何使用HTML和CSS实现列时,很少使用easy这个词。 幸运是,我们可以自信地使用添加到CSS3名为Flexbox新布局模式来快速定义应用程序两列布局。...用户不习惯在本地应用程序中看到这种情况,我们可以通过重新思考如何启动窗口来避免这种情况。 如果您认为应用程序第一次启动虚无闪光是无意义,考虑主进程中代码:它创建一个窗口,然后在其中加载内容。...macOS上Command-Shift-B时,您电子应用程序启动。...Chrome开发工具在所有渲染器进程中都可用,可以默认电子应用程序、键盘快捷键主进程触发。 此时Electron中还没有完全支持Node Inspector检查器。

2K30

CVE-2018-8495 看 PC 端 url scheme 安全问题

特定 url scheme 时,系统中匹配相对应 url scheme 项,从而启动应用程序;可见这是一个三方相互支持功能。...除了应用程序可能出现安全问题,浏览器(其他程序)在进行 url 解析并启动应用程序过程也可以出现安全问题;并且这三方相互支持过程中,仍然可能出现问题;无论是哪一个环节出现安全问题,其危害最终都会在...Windows XP IE7 改变了操作系统对 url 处理,而应用程序直接将路径传递给操作系统用于启动,最终导致包含 % 字符特殊链接导致启动任意程序。..."--no-sandbox" "--gpu-launcher=cmd.exe /c start calc 使用 IE 浏览器访问该链接,最终生成启动参数如下: electron.exe "//?"..."--no-sandbox" "--gpu-launcher=cmd.exe /c start calc" 通过参数注入,调用 electron 中支持 --gpu-launcher 参数,传入 cmd.exe

1.4K10

建立数据驱动,关键字驱动和混合Selenium框架这些你了解吗

该代码结构使得“数据集”与实际测试用例”分开,后者将测试Web应用程序功能。它也可以通过以下方式构造:外部应用程序(例如.csv)调用(调用)需要执行测试用例。...有许多框架,但是3个常用Selenium框架是: 数据驱动框架 关键字驱动框架 混合框架 为什么我们需要一个Selenium框架? 如果没有合适框架,将只有一个测试用例,其中包含了整个测试功能。...您可以通过向excel文件(其他来源)添加更多用户名和密码字段来轻松增加测试参数数量。...我正在谈论操作不过是需要作为测试用例一部分执行方法。关键字驱动框架好处是您可以轻松控制要测试功能。您可以在excel文件中指定测试应用程序功能方法。...框架,它如何有益以及如何使用这3个Selenium框架构建代码结构。

94520

Selenium修改HTTP请求头三种方式

测试自动化挑战之一修改Selenium WebDriver中请求请求头。我将分享如何使用Selenium WebDriver修改HTTP请求请求头。...需要对 Web 应用程序不同方面甚至服务器逻辑进行彻底测试情况。...在被测 Web 应用程序测试访客模式是测试人员可能需要修改HTTP请求请求头情况。但是Selenium RC曾经支持修改HTTP请求头功能,现在Selenium Webdriver不处理了。...让我们看看如何将浏览器 mob-proxy 与使用基本身份验证保护示例网站一起使用。为了解决这个问题,我们可能会缩小两种可能方法: 向所有请求添加授权请求头,没有条件例外。...0来标记start参数,代理在端口上启动

2.3K30

shell.openExternal | Electron 安全

xxxx 是不会影响定位文件,但是后面的参数也没有传递给要执行文件 MacOS 13.6 Deepin Linux 当传递二进制可执行文件地址给 url 参数时,Windows 和 MacOS 平台都是直接运行二进制可执行文件...,而 Linux 默认不会执行 由于无法传递参数,这导致直接打开二进制程序这事变得有些鸡肋,杀伤力小了很多,测试了一些在文件名、路径名等地方进行命令执行方式,也不是很奏效 2....默认是用文本编辑器来打开 .desktop 文件,其他 Linux 就需要进一步测试了 参考文档 https://benjamin-altpeter.de/shell-openexternal-dangers...search-ms: 打开搜索功能 jnlp: 对于存在 Java 环境可以使用协议 ms-officecmd: Microsoft Office UWP 应用程序用于启动其他 Office 桌面应用程序方案...,使用原型污染方式修改了 url 参数验证过程,导致可以执行任意协议请求 因此,除了对 url 参数做有效验证以外,还有保证验证过程不会被篡改 0x06 PDF 版 & Github PDF 版

17510

第五章-处理多窗口 | Electron实战

本章主要内容: 使用JavaScript Set数据结构跟踪多个窗口 促进主进程和多个渲染器进程之间通信 使用Node APIs检查应用程序运行在那个平台上 现在,当Fire Sale启动时,它为...接下来,我们重复前面几章中创建新窗口步骤。关闭窗口将其集合中移除,最后,我们返回对刚刚创建窗口引用,我们下一章需要这个参考资料。...}; ---- 将对当前窗口引用传递给主进程 文件系统读取文件内容之后,我们将文件路径和内容作为第一个参数传入并发送到窗口。...这就提出了一个问题:我们如何获得对窗口引用。 使用remote模块渲染器进程调用getFileFromUser(),以便与主进程通信。...另一种可能性是,您应用程序可以隐藏,或者使用全局快捷方式显示,或者托盘菜单栏中显示。我们将在后面的章节中实现这些。

4.1K21

Selenium自动化JUnit参数化实践

参数测试通过利用测试方法收集结果,有助于节省重复编写相同测试所花费时间。 在本文中,我将展示如何Selenium测试自动化实现JUnit参数测试。...首先,对于Selenium测试自动化,我们需要多个数据集合来执行测试。随之而来是一个跨浏览器矩阵,可以覆盖绝大多数用户实际情况。其次,我们需要学习如何编写测试脚本已存储数据集中获取数据。...任何数据更改,测试人员所需要就是使用所需数据编辑集合。 其次,使用Excel进行参数化,测试人员可以自由地外部文件中获取数据,无论数量是多少,都可以加载到Selenium测试自动化脚本中。...让我们看看如何使用数据驱动框架在JUnit中参数化我们测试用例。 在Selenium JUnit教程中,我们需要进行Excel参数主要元素是Excel工作表。...现在,我们已经准备好一个类,其中包含一个用于Excel读取数据方法,让我们继续在另一个类中编写测试方法,以传递与我们需要检索关键字相对应参数,同时调用获取数据方法Excel文件中。

1.1K30

什么是TestNG?

下面的开源测试框架使用现状调查可以看出,TestNG 是开发人员首选最佳Java 测试框架之一,Selenium是唯一领先于 TestNG 测试自动化框架,接近 50%组织个人喜欢TestNG...TestNG 框架旨在简化单元测试到集成测试测试由几个类、几个包甚至几个外部框架组成整个系统,例如应用程序)复杂测试需求。...固有地处理未捕获异常,从而防止突然测试终止 “靠谱”参数化能力 如何在 IntelliJ 中安装 TestNG Maven Repositories网站下载 JAR 并添加到依赖...DataProvider 始终返回对象二维列表,测试方法在每个传递参数使用数据驱动方法在其上执行执行。...这些值使用参数传递测试方法crossBrowserTest,测试用例在两个浏览器上一一执行。 这是跨浏览器测试代码实现经典示例,我们希望在多个浏览器上执行相同脚本。

1.4K20
领券