
जावास्क्रिप्ट और 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, और डायनामिक इम्पोर्ट्स को ट्रैक करेंprocess.env सीरियलाइज़ेशन, असुरक्षित शेल कमांडeval(), Function() कंस्ट्रक्टर, ReDoS-प्रवण regexes, SQL इंजेक्शनये पैकेज 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 देखें।
यदि आप एक डेवलपर हैं जो प्रोजेक्ट में योगदान करना चाहते हैं, तो आपको पहले CONTRIBUTING गाइड पढ़नी चाहिए।
अपना विकास पूरा करने के बाद, निम्नलिखित स्क्रिप्ट चलाकर जांचें कि टेस्ट (और लिंटर) अभी भी ठीक हैं:
$ npm run check
[!CAUTION] यदि आप कोई नई सुविधा जोड़ते हैं या कोई बग ठीक करते हैं, तो सुनिश्चित करें कि उसके लिए टेस्ट भी शामिल करें।
JS-X-Ray के आंतरिक भागों पर काम करने वाले योगदानकर्ताओं के लिए, निम्नलिखित संसाधन निम्न-स्तरीय उपयोगिताओं और AST हेरफेर पैटर्न का दस्तावेज़ीकरण करते हैं:
js-x-ray के प्रदर्शन को mitata का उपयोग करके मापा और ट्रैक किया जाता है।
बेंचमार्क चलाने के लिए:
workspaces/js-x-ray पर जाएं।npm run bench चलाएं।बेंचमार्क परिणाम workspaces/js-x-ray/benchmark/report.json में संग्रहीत होते हैं। इस फ़ाइल को मैन्युअल रूप से संपादित न करें; यह प्रत्येक पुल रिक्वेस्ट पर स्वचालित रूप से अपडेट होती है।
इन अद्भुत लोगों को धन्यवाद (emoji key):