
JavaScript & Node.js scanner SAST open-source. Un analyseur statique pour détecter les motifs malveillants les plus courants 🔬.
JS-X-Ray est un outil d'analyse statique (SAST) pour JavaScript et TypeScript, conçu pour identifier les motifs malveillants, les vulnérabilités de sécurité et les anomalies de code. Pensez-y comme à ESLint, mais dédié à l'analyse de sécurité. Créé à l'origine pour NodeSecure CLI, JS-X-Ray est devenu une option indépendante et sérieuse pour la protection de la chaîne d'approvisionnement.
JS-X-Ray analyse le code JS ou TS en un Arbre Syntaxique Abstrait (AST) sans utilisation extensive de RegEx ou de règles Semgrep. Cela permet le traçage de variables, la résolution d'imports dynamiques et la détection d'obfuscations sophistiquées que les outils basés sur la correspondance de motifs ne détectent pas. La contrepartie est que JS-X-Ray est exclusivement dédié à l'écosystème JavaScript/TypeScript.
require(), import et imports dynamiques avec traçage complet des variablesprocess.env, commandes shell dangereuseseval(), constructeur Function(), expressions régulières sujettes à ReDoS, injections SQLCes packages sont disponibles dans le dépôt de packages Node et peuvent être facilement installés avec npm ou 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 });
Pour la documentation complète de l'API, le catalogue des avertissements et une utilisation avancée, consultez le README du package @nodesecure/js-x-ray.
Si vous êtes un développeur souhaitant contribuer au projet, vous devez d'abord lire le guide CONTRIBUTING.
Une fois votre développement terminé, vérifiez que les tests (et le linter) sont toujours valides en exécutant le script suivant :
$ npm run check
[!CAUTION] Si vous introduisez une nouvelle fonctionnalité ou corrigez un bug, assurez-vous d'inclure des tests correspondants.
Pour les contributeurs travaillant sur les composants internes de JS-X-Ray, les ressources suivantes documentent les utilitaires de bas niveau et les modèles de manipulation d'AST :
Les performances de js-x-ray sont mesurées et suivies à l'aide de mitata.
Pour exécuter les benchmarks :
workspaces/js-x-ray.npm run bench.Les résultats des benchmarks sont stockés dans workspaces/js-x-ray/benchmark/report.json. Ne modifiez pas ce fichier manuellement ; il est mis à jour automatiquement à chaque pull request.
Un grand merci à ces personnes merveilleuses (clé d'emoji) :
MIT
![]() tchapacan 💻 ⚠️ |
![]() mkarkkainen 💻 |
![]() Michael Mior 📖 |