
أداة معالجة ثغرة CVE-2020-11023 في jQuery بدون اتصال للأنظمة Spring/JSP القديمة - باستخدام وظائف Node.js المدمجة فقط (بدون npm، بدون إنترنت)
أداة أتمتة لمعالجة jQuery CVE-2020-11023 تعمل بـ Node.js وحده في الشبكات المغلقة (لمشاريع Java/Spring/JSP القديمة · بدون الحاجة إلى npm install · بدون إنترنت · بدون تبعيات خارجية)
تتعامل محليًا مع كامل العملية اللازمة عند ترقية jQuery إلى 3.5+ في تطبيقات الويب القديمة (عائلة Spring/JSP + jQuery 1.x): تحليل ثابت شامل → تصحيح تلقائي آمن (توليد TO-BE) → استبدال بـ jQuery 3.5.1 + Migrate → Runtime Probe للواجهات → خادم Lab وهمي → حزمة قرار AI → فحص بوابة قبل التطبيق في بيئة الإنتاج → تقرير.
--target فقط. تُراجَع عبر 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 غير المضغوطة معها لأغراض Tracing/debug المؤقتة.rules/*.json. فيُضبط كل موقع نشر بتغيير حزمة القواعد فقط دون تعديل كود JS.@RequestMapping وإعدادات XML لتوليد ajaxToServerMap.csv وserverEndpoints.csv وhermes_server_evidence.json، وتُضاف تلميحات المتحكم إلى mock route.id/class/name/نص الأزرار في JSP/HTML مع محددات JS لتوليد سلوكيات التحقق في 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، ويُضغط في ai_verdict_packet.txt سؤال حكم لا يتجاوز 1000 حرف: «الفحص البشري كافٍ / يلزم runtime إضافي / يلزم مراجعة IEDriver».airgap_manifest.json/txt، ويُولَّد ZIP للتوزيع العام عبر --mode release-zip.실행0_웹대시보드.bat أو --mode ui تُعالَج في المتصفح: تصفح المسارات، والحساب التلقائي للمسار، وخط أنابيب 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 المضمّن، وتنظيف ملفات النواة القديمة، وسيناريوهات وقت التشغيل القائمة على عناصر واجهة المستخدم، وتكافؤ وقت التشغيل لعينات code-only/Chrome smoke/IE final، وإنشاء حزم النسخ واللصق لأحكام 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