
js-x-ray v@nodesecure/[email protected]
जावास्क्रिप्ट और Node.js ओपन-सोर्स SAST स्कैनर। सबसे सामान्य दुर्भावनापूर्ण पैटर्न का पता लगाने के लिए एक स्थैतिक विश्लेषक 🔬।
JS-X-Ray एक JavaScript और TypeScript SAST (स्थैतिक अनुप्रयोग सुरक्षा परीक्षण) है जो दुर्भावनापूर्ण पैटर्न, सुरक्षा कमजोरियों और कोड विसंगतियों की पहचान करने के लिए है। इसे 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-प्रवण regex, SQL इंजेक्शन - कमज़ोर क्रिप्टोग्राफिक एल्गोरिदम फ्लैग करें (MD5, SHA1, आदि)
- इंफ्रास्ट्रक्चर इंडिकेटर निकालें: URL, आईपी, होस्टनाम, ईमेल
- कॉन्फ़िगरेबल संवेदनशीलता मोड (conservative/aggressive) और एक्सटेंसिबल प्रोब सिस्टम
- JavaScript और TypeScript दोनों का समर्थन करता है
💃 शुरुआत करें
ये पैकेज Node पैकेज रिपॉजिटरी में उपलब्ध हैं और npm या yarn के साथ आसानी से इंस्टॉल किए जा सकते हैं।
$ npm i @nodesecure/js-x-ray
# या
$ 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 पैकेज README देखें।
Workspaces
🐥 योगदानकर्ता गाइड
यदि आप एक डेवलपर हैं जो परियोजना में योगदान देना चाहते हैं, तो आपको पहले CONTRIBUTING गाइड पढ़नी होगी।
एक बार जब आप अपना विकास पूरा कर लें, तो निम्नलिखित स्क्रिप्ट चलाकर जांचें कि परीक्षण (और लिंटर) अभी भी ठीक हैं:
$ npm run check
[!CAUTION] यदि आप कोई नई सुविधा पेश करते हैं या बग ठीक करते हैं, तो सुनिश्चित करें कि इसके लिए परीक्षण भी शामिल करें।
आंतरिक APIs
JS-X-Ray आंतरिक पर काम करने वाले योगदानकर्ताओं के लिए, निम्नलिखित संसाधन निम्न-स्तरीय उपयोगिताओं और AST हेरफेर पैटर्न का दस्तावेज़ीकरण करते हैं:
- ESTree उपयोगिताएँ - ESTree AST नोड्स में हेरफेर करने के लिए निम्न-स्तरीय सहायक
- ESTree असाइनमेंट और घोषणा पैटर्न (फ्रेंच) - AST रूप में JavaScript असाइनमेंट और घोषणा पैटर्न के लिए संदर्भ गाइड
बेंचमार्क
js-x-ray के प्रदर्शन को mitata का उपयोग करके मापा और ट्रैक किया जाता है।
बेंचमार्क चलाने के लिए:
workspaces/js-x-rayपर जाएँ।npm run benchचलाएँ।
बेंचमार्क परिणाम workspaces/js-x-ray/benchmark/report.json में संग्रहीत होते हैं। इस फ़ाइल को मैन्युअल रूप से संपादित न करें; यह प्रत्येक पुल अनुरोध पर स्वचालित रूप से अपडेट होती है।
योगदानकर्ता ✨
ये अद्भुत लोग हैं जिन्होंने योगदान दिया है (इमोजी कुंजी):
लाइसेंस
MIT

























