
js-x-ray v@nodesecure/[email protected]
ماسح SAST مفتوح المصدر لجافاسكريبت و Node.js. محلل ثابت لكشف أكثر الأنماط الخبيثة شيوعاً 🔬.
JS-X-Ray هي أداة SAST (اختبار أمان التطبيقات الثابت) للغة JavaScript و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، أوامر شل غير آمنة - اكتشاف الكود الضعيف:
eval()، منشئFunction()، التعابير العادية المعرضة لـ ReDoS، حقن SQL - وضع علامات على الخوارزميات التشفيرية الضعيفة (MD5, SHA1, إلخ)
- استخراج مؤشرات البنية التحتية: عناوين URL، عناوين IP، أسماء المضيفات، البريد الإلكتروني
- أوضاع حساسية قابلة للتكوين (محافظ/عدواني) ونظام استقصاء قابل للتوسيع
- دعم كل من JavaScript وTypeScript
💃 البدء
هذه الحزم متاحة في مستودع Node Package ويمكن تثبيتها بسهولة باستخدام 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 });
لتوثيق واجهة برمجة التطبيقات الكامل، كتالوج التحذيرات، والاستخدام المتقدم، راجع README حزمة @nodesecure/js-x-ray.
مساحات العمل
🐥 دليل المساهمين
إذا كنت مطورًا تتطلع إلى المساهمة في المشروع، فيجب عليك أولاً قراءة دليل المساهمة.
بمجرد الانتهاء من تطويرك، تحقق من أن الاختبارات (و linter) لا تزال جيدة عن طريق تشغيل النص التالي:
$ npm run check
[!CAUTION] في حالة تقديم ميزة جديدة أو إصلاح خطأ، تأكد من تضمين اختبارات لها أيضًا.
واجهات برمجة التطبيقات الداخلية
للمساهمين الذين يعملون على دواخل JS-X-Ray، توثق الموارد التالية الأدوات المساعدة منخفضة المستوى وأنماط معالجة AST:
- أدوات ESTree المساعدة - مساعدات منخفضة المستوى للتعامل مع عقد ESTree AST
- أنماط التخصيص والإعلان ESTree (بالفرنسية) - دليل مرجعي لأنماط التخصيص والإعلان في JavaScript بشكل AST
المعايير
يتم قياس وتتبع أداء js-x-ray باستخدام mitata.
لتشغيل المعايير:
- انتقل إلى
workspaces/js-x-ray. - قم بتشغيل
npm run bench.
يتم تخزين نتائج المعايير في workspaces/js-x-ray/benchmark/report.json. لا تقم بتحرير هذا الملف يدويًا؛ يتم تحديثه تلقائيًا عند كل طلب سحب.
المساهمون ✨
شكرًا لهؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية):
الترخيص
MIT

























