返回更新列表
新发布Jul 14, 2026

js-x-ray v@nodesecure/[email protected]

JavaScript & Node.js 开源 SAST 扫描器。用于检测最常见恶意模式的静态分析工具 🔬。

分享

@nodesecure/js-x-ray

npm version license ossf scorecard slsa level3 github ci workflow

JS-X-Ray 是一款 JavaScript 和 TypeScript 的 SAST 工具,用于识别恶意模式、安全漏洞和代码异常。你可以把它看作 ESLint,但专注于安全分析。JS-X-Ray 最初是为 NodeSecure CLI 创建的,如今已发展成为一个独立且可靠的供应链保护方案。

🔎 工作原理

JS-X-Ray 将 JS 或 TS 代码解析为 抽象语法树(AST),无需大量使用 RegEx 或 Semgrep 规则。这使其能够进行变量追踪、动态导入解析以及检测模式匹配工具无法发现的高级混淆。代价是 JS-X-Ray 完全专注于 JavaScript/TypeScript 生态系统。

💡 特性

  • 追踪 require()import 和动态导入,支持完整的变量追溯
  • 检测混淆代码,并识别所使用的工具(jsfuck、jjencode、obfuscator.io 等)
  • 标记恶意模式:数据外泄、process.env 序列化、不安全的 Shell 命令
  • 检测易受攻击的代码:eval()Function() 构造函数、易受 ReDoS 攻击的正则表达式、SQL 注入
  • 标记弱加密算法(MD5、SHA1 等)
  • 提取基础设施指标:URL、IP、主机名、邮箱地址
  • 可配置的敏感度模式(保守/激进)以及可扩展的检测探针系统
  • 同时支持 JavaScript 和 TypeScript

💃 快速入门

以下包可在 Node 包仓库中找到,并可通过 npmyarn 轻松安装。

$ npm i @nodesecure/js-x-ray
# 或
$ yarn add @nodesecure/js-x-ray

👀 用法

import { AstAnalyser } from "@nodesecure/js-x-ray";

const scanner = new AstAnalyser();

const { warnings, dependencies } = await scanner.analyseFile("./file.js");

console.log(dependencies);
console.dir(warnings, { depth: null });

完整的 API 文档、警告分类及高级用法,请参阅 @nodesecure/js-x-ray 包自述文件

工作区

🐥 贡献者指南

如果你是 希望为项目做贡献 的开发者,请首先阅读 贡献指南

完成开发后,运行以下脚本以确认测试(及 linter)仍然正常:

$ npm run check

[!CAUTION] 如果你引入了新功能或修复了 Bug,请务必同时为其编写测试。

内部 API

对于从事 JS-X-Ray 内部开发的贡献者,以下资源记录了底层工具和 AST 操作模式:

基准测试

JS-X-Ray 的性能通过 mitata 进行测量和跟踪。

运行基准测试:

  1. 进入 workspaces/js-x-ray 目录。
  2. 运行 npm run bench

基准测试结果存储在 workspaces/js-x-ray/benchmark/report.json 中。请勿手动编辑此文件;它会在每次拉取请求时自动更新。

贡献者 ✨

All Contributors

感谢以下这些出色的人们(表情键):

许可证

MIT

分类