العودة إلى التحديثات
New releaseSep 19, 2026

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

ماسح SAST مفتوح المصدر لجافاسكريبت و Node.js. محلل ثابت لكشف أكثر الأنماط الخبيثة شيوعاً 🔬.

مشاركة

@nodesecure/js-x-ray

npm version license ossf scorecard slsa level3 github ci workflow

JS-X-Ray هو أداة SAST لجافاسكريبت وTypeScript لتحديد الأنماط الخبيثة، والثغرات الأمنية، وشذوذ الشيفرة. فكّر فيه كـ ESLint، لكنه مخصص للتحليل الأمني. أُنشئ في الأصل لـ NodeSecure CLI، وأصبح JS-X-Ray خيارًا مستقلًا وجادًا لحماية سلسلة التوريد.

🔎 كيف يعمل

يقوم 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 ويمكن تثبيتها بسهولة باستخدام npm أو yarn.

$ npm i @nodesecure/js-x-ray
# or
$ 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 package README.

مساحات العمل

🐥 دليل المساهمين

إذا كنت مطورًا تتطلع إلى المساهمة في المشروع، فيجب عليك أولًا قراءة دليل CONTRIBUTING.

بعد الانتهاء من التطوير، تحقق من أن الاختبارات (والمُدقّق) لا تزال جيدة بتشغيل السكربت التالي:

$ npm run check

[!CAUTION] في حال أضفت ميزة جديدة أو أصلحت خطأً، تأكد من تضمين اختبارات لها أيضًا.

واجهات 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

شكرًا لهؤلاء الأشخاص الرائعين (emoji key):

الترخيص

MIT

الفئات