
जावास्क्रिप्ट और 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, और डायनामिक इम्पोर्ट को ट्रैक करेंprocess.env सीरियलाइजेशन, असुरक्षित शेल कमांडeval(), Function() कंस्ट्रक्टर, ReDoS-प्रवण regex, SQL इंजेक्शनये पैकेज 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 देखें।
यदि आप एक डेवलपर हैं जो परियोजना में योगदान देना चाहते हैं, तो आपको पहले 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 में संग्रहीत होते हैं। इस फ़ाइल को मैन्युअल रूप से संपादित न करें; यह प्रत्येक पुल अनुरोध पर स्वचालित रूप से अपडेट होती है।
ये अद्भुत लोग हैं जिन्होंने योगदान दिया है (इमोजी कुंजी):
MIT
![]() tchapacan 💻 ⚠️ |
![]() mkarkkainen 💻 |
![]() Michael Mior 📖 |