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

自定义协议 | Electron 安全

0x01 简介 大家好,今天和大家讨论自定义协议,在很多应用中,除了支持 http(s)、file、ftp等开放通用标准协议外,还会支持一些自定义协议自定义协议常被用于实现特殊功能,比如深度集成应用程序与特定网络服务...,调用资源不都是 http(s)、file 这种,尤其像是加载插件之类操作,内部用也是类似于 vscode: 这种协议,这种就属于应用内注册自定义协议 今天内容也是围绕着这两种情况进行讨论 公众号开启了留言功能...注册协议到特定 session 如果我们想将自定义协议注册到特定 session ,而不是默认,可以使用以下代码 const { app, BrowserWindow, net, protocol...,所以在做安全检查时,也需要根据实际情况,接下来列举几个曾经在注册自定义协议方面出现问题 需要注意是,外部引用安全防护代码可能不会针对自定义协议进行防护,这也是造成很多漏洞直接原因 CVE-2018...注册自定义协议通常用来实现特殊功能,比如深度集成应用程序与特定网络服务、提升用户体验或实现安全数据交换、插件等 自定义协议关联处理程序几乎没有特别多共性,完全由需求决定,因此可能会由于不够健硕代码而带来一些安全风险

15610

如何利用 Netty 实现自定义协议通信?

之前我们介绍了如何使用网络协议解决 TCP 拆包/粘包底层问题,这次我们将在此基础上继续讨论如何设计一个高效、可扩展、易维护自定义通信协议,以及如何使用 Netty 实现自定义通信协议。...通信协议设计 所谓协议,就是通信双方事先商量好接口暗语,在 TCP 网络编程中,发送方和接收方数据包格式都是二进制,发送方将对象转化成二进制流发送给接收方,接收方获得二进制数据后需要知道如何解析成对象...如果在满足业务场景以及性能需求前提下,推荐采用通用协议方案。相比通用协议自定义协议主要有以下优点。 极致性能:通用通信协议考虑了很多兼容性因素,必然在性能方面有所损失。...扩展性:自定义协议相比通用协议更好扩展,可以更好地满足自己业务需求。 安全性:通用协议是公开,很多漏洞已经很多被黑客攻破。...自定义协议更加安全,因为黑客需要先破解你协议内容 那么如何设计自定义通信协议呢?这个答案见仁见智,但是设计通信协议有经验方法可循。

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

如何确定线程池大小?

通常有点年纪程序员或许都听说这样一个说法 (其中 N 代表 CPU 个数) CPU 密集型应用,线程池大小设置为 N + 1 IO 密集型应用,线程池大小设置为 2N 这个说法到底是不是正确呢?...其实这是极不正确。那为什么呢? 首先我们从反面来看,假设这个说法是成立,那我们在一台服务器上部署多少个服务都无所谓了。因为线程池大小只能服务器核数有关,所以这个说法是不正确。...,只要知道这个查询 DB 耗时(CPU IO time),计算时间不就出来了嘛,我们看一下怎么才能简洁,明了记录 DB 查询耗时。...CPU 个数 cat /proc/cpuinfo| grep "processor"| wc -l 总结 合适配置线程池大小其实很不容易,但是通过上述公式和具体代码,我们就能快速、落地算出这个线程池该设置多大...不过最后最后,我们还是需要通过压力测试来进行微调,只有经过压测测试检验,我们才能最终保证配置大小是准确

2.4K10

如何确定线程池大小?

通常有点年纪程序员或许都听说这样一个说法 (其中 N 代表 CPU 个数) CPU 密集型应用,线程池大小设置为 N + 1 IO 密集型应用,线程池大小设置为 2N 这个说法到底是不是正确呢?...其实这是极不正确。那为什么呢? 首先我们从反面来看,假设这个说法是成立,那我们在一台服务器上部署多少个服务都无所谓了。因为线程池大小只能服务器核数有关,所以这个说法是不正确。...,只要知道这个查询 DB 耗时(CPU IO time),计算时间不就出来了嘛,我们看一下怎么才能简洁,明了记录 DB 查询耗时。...CPU 个数 cat /proc/cpuinfo| grep "processor"| wc -l 总结 合适配置线程池大小其实很不容易,但是通过上述公式和具体代码,我们就能快速、落地算出这个线程池该设置多大...不过最后最后,我们还是需要通过压力测试来进行微调,只有经过压测测试检验,我们才能最终保证配置大小是准确

1.4K30

如何确定Kaizen实施机会?

虽然Kaizen最终目标是每天逐步持续改进,但你必须从某个地方开始。当您第一次开始实施Kaizen时,您可能需要进行流程审查,以确定最初改进机会。以下是审查流程以获得可能改进一些基础知识。...绘制流程图-获取流程图/流程图以及可能存在任何工作说明、控制计划或其他流程文件。如果您没有流程图,请构建一个流程图。彻底了解流程的当前状态,了解真正发生了什么。如果你不理解你过程,你就无法改进它。...这工作是怎么做/应该怎么做?流程步骤多久执行一次/需要多久执行一次?继续回顾流程和每个流程步骤,直到您涵盖了每个步骤。学会超越当前状态,展望未来改进过程。我们必须摆脱“我们总是这样做”咒语。...允许这种态度只会阻止对流程任何更改或改进。通过执行流程审查并提出正确问题,您将能够:从流程中删除任何不需要步骤或任务。确定哪些工序必须分开进行,哪些工序可以并行完成。...重新安排工序顺序,以减少浪费;在许多情况下,对操作顺序或顺序稍加改变就能使我们减少浪费时间和精力。

40040

如何确定Pod内网域名

内网域名解析 内网域名解析,顾名思义是通过内网DNS服务器在局域网内做域名解析。 内网域名解析好处: 1、较高性能和较低延迟; 2、能够有效地防范外部攻击,解决劫持问题。...原因也很简单,就是数据包在网络设备上传输路径短了。 另外内网网络质量是可控,大多数情况下都比外网好些,即使不好也很容易换个比较好设备来解决。...如何确定K8s应用内网域名 K8s应用内网域名是由K8s集群内部域名解析服务来进行解析,整个过程都在K8s集群内。...K8s中应用全限定域名由三部分组成: 1、应用在K8s中定义服务名 2、应用在K8s集群中命名空间 3、集群本地服务名称中使用可配置集群域后缀。 示例: 一个ServiceYAML定义文件。...另外,应用K8s内网域名是ping不通 小技巧: 所有的K8s应用都有YAML定义文件。

1.7K20

Electron实用技巧-electron-builder中用户协议(license)使用及多语言支持

# 1 通常pc软件安装过程中,会加入用户协议,如: 下面介绍一下使用electron-builder打包应用,如何加入license。...首先参考官网介绍:windows:nsis[1],macOS:dmg[2] # 2 官网上关于license配置说明写不是很详细,下面是我实践总结出正确姿势: 最简单方法是在你项目/build...image-20210122100244716 /build是electron-builder默认资源目录,也可以修改,比如我这里是public目录: directories: { buildResources...true, displayLanguageSelector: true, }, 打包后安装,选择语言: 英文: 中文: macOS: 参考资料 [1] nsis: https://www.electron.build.../configuration/nsis [2] dmg: https://www.electron.build/configuration/dmg [3] language code to name:

2.4K40

如何基于 Electron 开发跨终端应用

本文首发于政采云前端团队博客:如何基于 Electron 开发跨终端应用 https://www.zoo.team/article/the-application-of-electron ?...自我介绍 欢迎大家来到今天早早聊跨端跨栈专场,今天我分享主题是《如何基于 Electron 开发跨终端应用》。...下面我们还会详细介绍一些这方面的应用。 ? 开发模式 上面我们大概介绍了一下 Electron 一些价值。如果说我们想基于 Electron 开发一个跨平台桌面端应用,应该如何来做?...以我们前端工程化平台敦煌为例,介绍一下我们是如何通过 Electron 将工程化能力由 CLI 式 变为 GUI 式使用。...当然还有更多可能性,就是前面提到 spaceX 这样更大一个场景~ ? QA “请问子洋:如何进行热更新呢?据我了解 Electron 打包出来页面是放在包内如何进行在线更新?

1.7K31

(七)线程池大小如何确定

线程使用目的是提高运行速度,提高运行速度是要充分提用CPU和I/O 利用率。 这就涉及到CPU密集型程序和I/O密集型程序区别了。...简单说,就是需要大量输入输出,不如读文件、写文件、传输文件、网络请求。 如何确定线程池大小? 线程数不是越多越好。...: Nthreads = Ncpu x Ucpu x (1 + W/C) CPU数量是确定,CPU使用率是目标值也是确定,W/C也是可以通过基准程序测试得出。...这个经验公式原理很简单,T个线程,每个线程占用PCPU时间,如果刚好占满C个CPU,那么必有 T * P = C。 如果一个web程序有CPU操作,也有IO操作,那该如何设置呢?...article/details/78990156 《java虚拟机并发编程》 腾讯面试官:线程池要设置多大: http://www.zyiz.net/tech/detail-121726.html 如何合理地估算线程池大小

1.4K10

如何有效收集公开来源威胁情报

由此可以看出,威胁情报库丰富,在于情报来源丰富,也在于对威胁情报内容有效提取。 二、来源 我们关注是威胁情报中域名、URL、IP等数据,这些数据来源主要有两类。...这也是威胁情报收集中非常重要一类来源,但其最大问题是这些信息一般都在文章中出现,其间夹杂了大量冗余信息,使得提取这些数据具有一定困难。 关于来源,我们正努力搜集其他威胁情报来源。...三、开源黑名单获取脚本 现有的来源主要是一些网站,针对这些来源,想要自动化提取信息最有效办法是爬虫。下面介绍我们编写其中一个主要爬虫脚本,该脚本主要爬取FireHOL网站上IP黑名单。 ?...四、从文章中提取IoC信息 从文章中提取IoC信息是我们关注数据(恶意IP、恶意URL、恶意域名)另一个来源。...六、结语 威胁情报收集是一项非常复杂且庞大工程,特别是威胁情报来源丰富,内容结构不一致,给收集工作带来不小挑战。

3.8K60

如何确定Kafka集群适当topicspartitions数量

在一个Kafka集群中如何选择topics/partitions数量 翻译自How to choose the number of topics/partitions in a Kafka cluster...: kafka基本运行原理 kafka性能如何 kafka为何效能好 kafka有哪些瓶颈 目前在Kafka 2.0版本中已经支持单集群200KPartition数量,这真是可喜可贺啊~~~...更多Partition数量会产生更高吞吐量 首先需要明白一件事是,Partition是Kafka最小并行单元。...为了避免这种情况,一种通常作法是提前多分配一些Partition,基本上,你可以根据未来1到2年吞吐量来确定Partition数量,这样来使Partition数量在一个长时期内保持不变。...这对于对时效性要求高应用来说是不太能接受。 这种情况在规模大集群上是会得到缓解

2.4K20

图纸有公差如何确定尺寸?

P – 实际位置。 位置计算公式(不含 MMC/LMC) 如果 PTP,则位置不符合要求。 带 MMC/LMC 位置公式很简单。...步骤 3 — 根据零件特征和条件类型,从下表中获取补偿公差 (BT)。 步骤 4 – 获取具有补偿公差 TP = TP + BT 如果 P<=TP,则该特征在允许位置范围内。...最大实体条件(MMC) 表示具有最大体积/尺寸特性最大或最小允许容许度。 在孔里 ,MMC=根据公差允许最小直径。 在轴上 ,MMC=根据公差允许最大直径。...将真实位置与MMC结合起来是非常有用。当该特性尺寸处于其最大实体条件时,考虑最大允许位置偏差。当零件测量尺寸和它MMC之间差异增加时,你会在位置上使用更大公差。...这个额外公差范围被称为补偿公差。 什么是补偿公差? 由于该特性相对于其最大物质条件尺寸,补偿公差增加了允许位置偏差。最小加成公差是零,最大公差是零件大小公差域。

8210

如何确定DevOps变更优先级?

DevOps影响了整个SDLC,那么我们如何确定我们在何时应该首先完成哪些工作呢? ? 自动化一切!有多少人听过这句话?有多少人被要求从事这项工作?...也许您甚至想自己自动化一些事情,但是却没有足够时间完成工作? 任何IT项目都在努力获取正确数量资源,并在正确时间进行正确工作。那么,您如何才能帮助和交流现在应该解决最高优先级问题呢?...虽然一个企业生产量多少会取决于其生产能力,但是必须努力产生对其产品潜在需求。 对于工程团队而言,这实际上意味着我们需要了解是否确实有解决这些痛点需求,或者这仅仅是单一资源所苦苦挣扎事情。...也许是因为只有一个人需要这样做,并且从来没有遇到过完成工作后问题? 尽管我无法描述所有可能情况并给出示例,但我最佳建议是从时间,人员和金钱方面考虑您痛点。...参与某事的人越多,花费时间越多通常意味着更多经济影响。经济影响越大,首先解决问题就越痛苦且最可行。 改进 ? 解释这一点最简单方法是将其称为概念证明阶段。花时间创建和定义计划。

65130

Aeraki 教程系列:如何开发一个自定义协议

MetaProtocol Proxy 提供了一个良好协议扩展机制,使得我们可以基于 MetaProtocol Proxy 快速实现一个自定义协议七层代理。...因此基于 MetaProtocol 进行开发极大简化了实现一个七层网络代理工作,我们只需要实现编解码少量代码,即可得到一个自定义协议七层代理。一般来说,实现一个自定义协议只需要数百行代码。...除了快速开发,节省工作量之外,采用 MetaProtocol 为服务网格开发自定义协议另一个好处是该方案对 Istio,Envoy,以及 MetaProtocol Proxy 自身等上游开源项目是完全无侵入...实现编解码接口 Aeraki 提供了一个应用协议扩展示例 awesomerpc。示例中包含了实现自定义协议程序框架,可以该示例为基础进行修改,编写你自己私有协议。.../build.sh 定义一个 ApplicationProtocol 要在 Istio 中识别自定义协议,需要创建一个 Aeraki ApplicationProtocol CRD 资源。

57020

Java并发:如何确定线程池线程数目

3、提高系统稳定性; 不同业务使用不同线程池隔离,可以提高系统稳定性,而不用担心业务之间相互影响。...IO密集型任务如何确定线程数目 ---- IO密集型任务对CPU使用率比较低,IO处理时间稍长,IO阻塞期间导致线程空余,所以通常线程数目较多,一般为CPU核心数目的两倍。...java.lang.Runtime#availableProcessors * 2 CPU密集型任务如何确定线程数目 ---- CPU密集型任务也叫计算密集型任务,即需要大量计算而非常消耗CPU资源任务...混合型任务如何确定线程数目 ---- 混合型任务即少量消耗CPU,又大量消耗IO任务。一般我们微服务系统就属于这种。...小结 ---- 线程是操作系统中比较稀缺资源,大量创建线程池,不仅消耗系统资源,还会导致系统稳定性降低,所以需要根据任务类型不同设置合理线程数目。

21220
领券