
js-x-ray @nodesecure/[email protected]
जावास्क्रिप्ट और Node.js ओपन-सोर्स SAST स्कैनर। सबसे सामान्य दुर्भावनापूर्ण पैटर्न का पता लगाने के लिए एक स्थैतिक विश्लेषक 🔬।
JS-X-Ray एक JavaScript और TypeScript SAST है जो दुर्भावनापूर्ण पैटर्न, सुरक्षा कमजोरियों और कोड विसंगतियों की पहचान करता है। इसे ESLint की तरह समझें, लेकिन सुरक्षा विश्लेषण के लिए समर्पित। मूल रूप से NodeSecure CLI के लिए बनाया गया, JS-X-Ray सप्लाई चेन सुरक्षा के लिए एक स्वतंत्र और गंभीर विकल्प बन गया है।
🔎 यह कैसे काम करता है
JS-X-Ray JS या TS कोड को एक Abstract Syntax Tree (AST) में पार्स करता है, बिना RegEx या Semgrep नियमों के व्यापक उपयोग के। यह वेरिएबल ट्रेसिंग, डायनामिक इम्पोर्ट रिज़ॉल्यूशन, और परिष्कृत ऑब्फस्केशन का पता लगाने में सक्षम बनाता है जिसे पैटर्न-मैचिंग टूल्स चूक जाते हैं। इसका व्यापार-बंद यह है कि JS-X-Ray पूरी तरह से JavaScript/TypeScript इकोसिस्टम के लिए समर्पित है।
💡 विशेषताएँ
- पूर्ण वेरिएबल ट्रेसिंग के साथ
require(),import, और डायनामिक इम्पोर्ट्स को ट्रैक करें - ऑब्फस्केटेड कोड का पता लगाएं और उपयोग किए गए टूल की पहचान करें (jsfuck, jjencode, obfuscator.io, और अधिक)
- दुर्भावनापूर्ण पैटर्न को फ्लैग करें: डेटा एक्सफिल्ट्रेशन,
process.envसीरियलाइज़ेशन, असुरक्षित शेल कमांड - कमजोर कोड का पता लगाएं:
eval(),Function()कंस्ट्रक्टर, ReDoS-प्रवण regexes, SQL इंजेक्शन - कमजोर क्रिप्टोग्राफिक एल्गोरिदम को फ्लैग करें (MD5, SHA1, आदि)
- इंफ्रास्ट्रक्चर संकेतक निकालें: URLs, IPs, होस्टनाम, ईमेल
- कॉन्फ़िगर करने योग्य संवेदनशीलता मोड (रूढ़िवादी/आक्रामक) और विस्तार योग्य प्रोब सिस्टम
- 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 पैकेज README देखें।
Workspaces
🐥 योगदानकर्ता गाइड
यदि आप एक डेवलपर हैं जो प्रोजेक्ट में योगदान करना चाहते हैं, तो आपको पहले CONTRIBUTING गाइड पढ़नी चाहिए।
अपना विकास पूरा करने के बाद, निम्नलिखित स्क्रिप्ट चलाकर जांचें कि टेस्ट (और लिंटर) अभी भी ठीक हैं:
$ npm run check
[!CAUTION] यदि आप कोई नई सुविधा जोड़ते हैं या कोई बग ठीक करते हैं, तो सुनिश्चित करें कि उसके लिए टेस्ट भी शामिल करें।
आंतरिक APIs
JS-X-Ray के आंतरिक भागों पर काम करने वाले योगदानकर्ताओं के लिए, निम्नलिखित संसाधन निम्न-स्तरीय उपयोगिताओं और AST हेरफेर पैटर्न का दस्तावेज़ीकरण करते हैं:
- ESTree utilities - ESTree AST नोड्स में हेरफेर करने के लिए निम्न-स्तरीय हेल्पर्स
- ESTree assignment and declaration patterns (french) - AST रूप में JavaScript असाइनमेंट और डिक्लेरेशन पैटर्न के लिए संदर्भ गाइड
बेंचमार्क
js-x-ray के प्रदर्शन को mitata का उपयोग करके मापा और ट्रैक किया जाता है।
बेंचमार्क चलाने के लिए:
workspaces/js-x-rayपर जाएं।npm run benchचलाएं।
बेंचमार्क परिणाम workspaces/js-x-ray/benchmark/report.json में संग्रहीत होते हैं। इस फ़ाइल को मैन्युअल रूप से संपादित न करें; यह प्रत्येक पुल रिक्वेस्ट पर स्वचालित रूप से अपडेट होती है।
योगदानकर्ता ✨
इन अद्भुत लोगों को धन्यवाद (emoji key):
लाइसेंस
MIT

























