閉鎖網で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、boolean .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 を Browse または入力するだけで 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