在隔离网络中仅靠 Node.js 运行的 jQuery CVE-2020-11023 修复自动化工具 (适用于遗留 Java/Spring/JSP 项目 · 无需 npm install · 无需互联网 · 零外部依赖)
在需要将旧版遗留 Web(Spring/JSP 系列 + jQuery 1.x)中的 jQuery 升级到 3.5+ 时,可在本地完成全流程: 全量静态分析 → 安全自动修复(生成 TO-BE)→ jQuery 3.5.1 + Migrate 替换 → 面向界面的 Runtime Probe → mock Lab 服务器 → AI 判定包 → 上线前门禁检查 → 报告。
--target TO-BE 文件夹中生成。通过 report/index.html 的文件点击 AS-IS/TO-BE split diff 确认后再反映。.bind→.on、.size()→.length、布尔 .attr→.prop 等在 jQuery 1.x/3.x 两侧均可工作的预防性变更。像 .html(response) 这样的 XSS 候选绝不自动修复,仅进行分类。patch-jquery 会自动将 jquery-3.5.1.min.js 和 jquery-migrate-3.6.0.min.js 放置到 TO-BE 树中,因此默认组合无需单独准备文件即可运行。未压缩的 jquery-migrate-3.6.0.js 也一并包含,用于临时 Tracing/debug。rules/*.json。每个分发点无需修改 JS 代码,仅更换规则包即可调优。@RequestMapping 系列和 XML 配置,生成 ajaxToServerMap.csv、serverEndpoints.csv、hermes_server_evidence.json,并在 mock route 上附加控制器提示。id/class/name/按钮文本与 JS selector 匹配,在 runtime_scenarios.html 中生成 1 网 code-only/static、2 网 Chrome smoke、Edge IE mode final sample 确认动作。LOCAL_LAB_OK、CHROME_SMOKE_REQUIRED、IE_FINAL_SAMPLE_REQUIRED 通道,并生成 runtime_parity.html、runtimeParity.csv、ieModeRisk.csv。runtime-lab/ 脚手架。voyager_packet.txt 中压缩摘要/场景/selector/AJAX,在 ai_verdict_packet.txt 中以 1000 字以内压缩“人工检查充分/需要额外运行时/需要审查 IEDriver”的判断问题。airgap_manifest.json/txt 留下无依赖/无通信证明,并通过 --mode release-zip 生成公开分发用 ZIP。실행0_웹대시보드.bat 或 --mode ui 在浏览器中处理路径 Browse、自动路径计算、plan/autofix/patch/Hermes/report 流水线、Local Lab、打开现有报告 HTML。index.html 中先查看按类型划分的图表(如 event-shortcut-load 等)以及按目录 depth 的分布,点击文件时以模态框对比 AS-IS/TO-BE 周边代码。--mode self-test 会创建临时示例项目并验证整个周期。v5.6.10 包含 source-only 自动设置、S1~S11 Web 控制台步骤名、路径/类型聚合、AS-IS/TO-BE 换行保留自动修正、捆绑 jQuery 自动部署、old core 文件清理、基于 UI 元素的运行时场景、code-only/Chrome smoke/IE final sample Runtime Parity、Voyager/AI 判定复制粘贴包生成。node run-jquery35-v5.js --mode self-test
node run-jquery35-v5.js --mode ui --port 18088
node run-jquery35-v5.js --source "C:\work\legacy-app" --target "C:\work\legacy-app_jquery35_tobe" --report "C:\work\jquery35_report_v5" --mode plan
浏览器控制台在 http://127.0.0.1:18088/ 打开。在此只需浏览或输入 source,TO-BE/report/profile/server-source/verify-source 的默认路径就会自动推算,然后运行各个 S1~S11 阶段或 Pipeline 即可。
如果更习惯命令行方式,可打开 report\index.html 仪表板查看现状,并按 README_FIRST.txt 中的顺序(分析 → 自动修复 → jQuery 替换 → Probe → Lab → verify-clean)依次执行。
Windows 用户请仅修改随附的 실행0_웹대시보드.bat ~ 실행9_배포ZIP생성.bat 顶部的路径后运行。
在公开分发或应用到其他现场时,请复制 project-profile.public.sample.json 并创建为 project-profile.json,如有需要,仅修改 rules/public-defaults.json、rules/vendor-compat.json、rules/mock-defaults.json 即可。
node run-jquery35-v5.js --report ".\release" --mode release-zip
文档中的所有路径(如 C:\work\legacy-app 等)均为示例。请替换为实际项目路径使用。
Node.js 16+ minimum, Node.js 18+ recommended. 仅此而已。
MIT