@doyensec/electronegativity

中文文档
1.10.3发布于 2023/03/09Apache-2.0CommonJS近 30 天下载 4.6万

电容是识别电容应用中的错配置和安全防标的工具

中文使用文档
文档目录10 节
  1. 什么是电容?
  2. 电子NG改进版
  3. 安装
  4. 使用量
  5. 国 际
  6. 忽略行或文件
  7. 排雷中心/发改委
  8. 程序
  9. 捐款
  10. 贷项

电容

什么是电容?

电容 这是一种工具,用以识别在下列系统中的不正确配置和安全防标 电子- 基于应用程序.

它利用AST和DOM解析来寻找与安全有关的配置,详见 "电子安全检查清单——开发者和审计师指南" 白纸.

软件开发者和安全审计员在使用Electron开发应用程序时,可以利用这一工具来检测并缓解潜在的弱点和执行错误. 在使用电负性时仍然需要对电(in)安全性有很好的了解,因为工具所发现的一些潜在问题需要人工调查.

如果你对电能安全感兴趣 请看看我们 黑发2017年 研究 电能 - 电能安全研究 看着他 多恩塞克的博客。 。 。 .

Electronegativity Demo

电子NG改进版

如果您需要更强大或更新的东西,由于应用了多年的研发成果,基于电负性(Electronegative)的改进型SAST工具可以使用 多恩塞克语Name2020年底,我们坐下来制定项目路线图,并建立了一个开发小组,以研究现在的情况 电能您可以在最近阅读一些与开放源码软件版本相比的主要改进 博客文章。 。 。 .

安装

主要释放被推向国家预防机制,可以简单地使用:

$ npm install @doyensec/electronegativity -g

使用量

国 际

$ electronegativity -h
选项说明
- 维输出版本编号
-一, -输入输入(目录、.js、.html、.asar)
-i, -- 检查只运行指定的检查, 以 csv 格式通过
-x, -- 不包括检查 跳过指定的检查列表,以 csv 格式通过
-s, -- 绝对的仅返回具有规定严重或以上程度的检测结果
-c -- 自信仅返回具有特定信任程度或以上的结果
-o, --output <filename [.csv或.sarif]] (中文(简体) )将结果保存到 csv 或 sarif 格式的文件
-r, -- 相对显示文件的相对路径
-v, -- 动词 显示结果的描述,默认为真实
-u, -- 升级 运行Electron升级检查, eg -u 7.8
-e, --电子版本 假设设定的 Electron 版本, 凌驾于检测到的版本, 如 -e 7. 0
-p, --parser-插头 指定用逗号分隔的附加解析器插件, 例如 - p 可选 链条
-h, --帮助产出使用信息

使用电负性在包含有 Electron app的目录中查找问题:

$ electronegativity -i /path/to/electron/app

利用电负性在 asar 归档和保存结果于 csv 文件 :

$ electronegativity -i /path/to/asar/archive -o result.csv

在从一个电子版本升级到另一个版本时使用电负性来发现断裂变化:

$ electronegativity -i /path/to/electron/app -v -u 7..8

注:如果运行到致命错误“ JavaScript heap ” , 您可以使用 node --max-old-space-size=4096 electronegativity -i /path/to/asar/archive -o result.csv

忽略行或文件

电容允许您使用 eng-disable 评论。 例如,如果想要特定检查忽略一行代码,可以按以下方式禁用:

const res = eval(safeVariable); /* eng-disable DANGEROUS_FUNCTIONS_JS_CHECK */
<webview src="https://doyensec.com/" enableblinkfeatures="DangerousFeature"></webview> <!-- eng-disable BLINK_FEATURES_HTML_CHECK -->

任意 eng-disable 内置注释( i)// eng-disable, (中文(简体) ), /* eng-disable */, (中文(简体) ), <!-- eng-disable -->)将禁用该行的指定检查。 也可以使用他们的蛇案身份证提供多个核对名称(DANGEROUS_FUNCTIONS_JS_CHECK或它们的构造名称(dangerousFunctionsJSCheck:

shell.openExternal(eval(safeVar)); /* eng-disable OPEN_EXTERNAL_JS_CHECK DANGEROUS_FUNCTIONS_JS_CHECK */

如果你放一个 eng-disable a 顶端任何代码之前的指令 .js 或者说 .html 文件,将禁用已通过的检查 整个 文档.

关于全球检查和 eng-disable 说明

在 v1. 9.0 全球 之前 无法使用代码说明来禁用检查 。 如果您仍在使用旧版本, 请使用 -x 手动禁用检查列表的 CLI 参数( 例如 ). -x LimitNavigationJsCheck,PermissionRequestHandlerJsCheck,CSPGlobalCheck) (中文(简体) ). 请注意,使用说明可能不适用于某些更高级别的检查,例如: CSP_GLOBAL_CHECK 或者说 AVAILABLE_SECURITY_FIXES_GLOBAL_CHECK对于这些案例,你可能想使用 -x 标记以排除扫描中的特定检查.

排雷中心/发改委

电容动作 可能作为您的 GitHub CI/CD 管道的一部分运行以获取“代码扫描提示 ” :

Code scanning alerts

程序

也可以在程序上使用电负性,使用与CLI相似的选项:

const run = require('@doyensec/electronegativity')
// or: import run from '@doyensec/electronegativity';

run({
  // input (directory, .js, .html, .asar)
  input: '/path/to/electron/app',
  // save the results to a file in csv or sarif format (optional)
  output: '/path/for/output/file',
  // true to save output as sarif, false to save as csv (optional)
  isSarif: false,
  // only run the specified checks (optional)
  customScan: ['dangerousfunctionsjscheck', 'remotemodulejscheck'],
  // only return findings with the specified level of severity or above (optional)
  severitySet: 'high',
  // only return findings with the specified level of confidence or above (optional)
  confidenceSet: 'certain',
  // show relative path for files (optional)
  isRelative: false,
  // run Electron upgrade checks, eg -u 7..8 to check upgrade from Electron 7 to 8 (optional)
  electronUpgrade: '7..8',
  // assume the set Electron version, overriding the detected one
  electronVersion: '5.0.0',
  // use additional parser plugins
  parserPlugins: ['optionalChaining']
})
    .then(result => console.log(result))
    .catch(err => console.error(err));

结果包含全球和原子检查的次数、分析时遇到的任何错误以及发现的一系列问题,例如:

{
  globalChecks: 6,
  atomicChecks: 36,
  errors: [
    {
      file: 'ts/main/main.ts',
      sample: 'shell.openExternal(url);',
      location: { line: 328, column: 4 },
      id: 'OPEN_EXTERNAL_JS_CHECK',
      description: 'Review the use of openExternal',
      properties: undefined,
      severity: { value: 2, name: 'MEDIUM', format: [Function: format] },
      confidence: { value: 0, name: 'TENTATIVE', format: [Function: format] },
      manualReview: true,
      shortenedURL: 'https://git.io/JeuMC'
    },
    {
      file: 'ts/main/main.ts',
      sample: 'const popup = new BrowserWindow(options);',
      location: { line: 340, column: 18 },
      id: 'CONTEXT_ISOLATION_JS_CHECK',
      description: 'Review the use of the contextIsolation option',
      properties: undefined,
      severity: { value: 3, name: 'HIGH', format: [Function: format] },
      confidence: { value: 1, name: 'FIRM', format: [Function: format] },
      manualReview: false,
      shortenedURL: 'https://git.io/Jeu1p'
    }
  ]
}

捐款

如果你想为这个项目做贡献 请看看我们 捐款额。 。 。 .

贷项

由于许多人的工作,电磁成为可能 捐助者。 。 。 .

该项目由下列机构赞助: 多恩塞克有限责任公司。 。 。 .

alt text

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}让我们分手吧 你的Electron.js应用程序!

版本与发布记录

@doyensec/electronegativity 共发布 27 个版本,首次发布于 2018/08/30;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.10.3latest2023/03/093 年前
1.10.22022/12/093 年前
1.10.12022/12/073 年前
1.10.02022/12/073 年前
1.9.12021/05/235 年前
1.9.02021/03/275 年前

关于 @doyensec/electronegativity 的常见问题

@doyensec/electronegativity 是什么?

电容是识别电容应用中的错配置和安全防标的工具

如何安装 @doyensec/electronegativity?

在项目目录运行 npm install @doyensec/electronegativity,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 electronegativity,可以用 npx electronegativity 直接运行。

@doyensec/electronegativity 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/doyensec__electronegativity 是否存在。

@doyensec/electronegativity 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@doyensec/electronegativity 可以商用吗?

@doyensec/electronegativity 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@doyensec/electronegativity 的下载量有多少?

根据 npm 官方下载统计,@doyensec/electronegativity 在 2026/10/13 – 2026/11/11 这 30 天内被下载 45,657 次,日均约 1,522 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@doyensec/electronegativity 还在维护吗?

最新版本 1.10.3 发布于 2023/03/09(3 年前);至今共发布 27 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/08/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。