
Офлайн-комплект для исправления CVE-2020-11023 в jQuery для легаси-приложений Spring/JSP — только встроенные модули Node.js (без npm, без интернета)
Инструмент автоматизации устранения jQuery CVE-2020-11023, работающий на одном Node.js в изолированной сети (для устаревших проектов Java/Spring/JSP · не требуется npm install · не требуется интернет · 0 внешних зависимостей)
Он локально выполняет весь процесс, необходимый при обновлении jQuery до 3.5+ в старых устаревших веб-приложениях (семейство Spring/JSP + jQuery 1.x): полный статический анализ → безопасное автоматическое исправление (генерация TO-BE) → замена на jQuery 3.5.1 + Migrate → Runtime Probe для экранов → mock Lab-сервер → пакет AI-решений → проверка шлюза перед внедрением в эксплуатацию → отчёт.
--target. Проверка выполняется через split diff AS-IS/TO-BE по клику на файл в report/index.html, после чего изменения применяются..bind→.on, .size()→.length, boolean .attr→.prop. Кандидаты на XSS вроде .html(response) никогда не исправляются автоматически, а только классифицируются.patch-jquery автоматически размещает jquery-3.5.1.min.js и jquery-migrate-3.6.0.min.js в дереве TO-BE, поэтому базовую комбинацию можно запустить без отдельной подготовки файлов. Несжатый jquery-migrate-3.6.0.js включён вместе с ним для временной трассировки/отладки.rules/*.json. В каждом месте развёртывания настраивается только rulepack без изменения JS-кода.@RequestMapping и XML-конфигурации, создаёт ajaxToServerMap.csv, serverEndpoints.csv, hermes_server_evidence.json и добавляет подсказки контроллеров к mock route.id/class/name/текст кнопок в JSP/HTML с JS selector и создаёт в runtime_scenarios.html действия проверки: code-only/static для сети 1, Chrome smoke для сети 2, финальный образец Edge IE mode.LOCAL_LAB_OK, CHROME_SMOKE_REQUIRED, IE_FINAL_SAMPLE_REQUIRED, создавая runtime_parity.html, runtimeParity.csv, ieModeRisk.csv.runtime-lab/, позволяющий развернуть WAR и экспериментировать на Codex/локальном ПК.voyager_packet.txt сжимаются сводка/сценарии/selector/AJAX, а в ai_verdict_packet.txt в объёме до 1000 символов сжимается вопрос для решения: «достаточно ручной проверки/требуется дополнительный runtime/требуется рассмотрение 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 и др.) и распределение по глубине каталогов, а при клике на файл в модальном окне сравнивается окружающий код AS-IS/TO-BE.--mode self-test создаёт временный образец проекта и проверяет полный цикл. v5.6.10 включает автоматическую настройку source-only, названия этапов веб-консоли S1~S11, агрегацию путей/типов, автоисправление с сохранением переносов строк AS-IS/TO-BE, автоматическое размещение встроенного jQuery, очистку старых файлов core, runtime-сценарии на основе элементов UI, Runtime Parity для code-only/Chrome smoke/IE final sample, а также генерацию пакетов для копирования решений 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