Retour aux mises à jour
New releaseSep 19, 2026

js-x-ray @nodesecure/[email protected]

JavaScript & Node.js scanner SAST open-source. Un analyseur statique pour détecter les motifs malveillants les plus courants 🔬.

Partager

@nodesecure/js-x-ray

npm version license ossf scorecard slsa level3 github ci workflow

JS-X-Ray est un outil SAST pour JavaScript et TypeScript, destiné à identifier les motifs malveillants, les vulnérabilités de sécurité et les anomalies de code. Voyez-le comme ESLint, mais dédié à l'analyse de sécurité. Initialement créé pour NodeSecure CLI, JS-X-Ray est devenu une option indépendante et sérieuse pour la protection de la chaîne d'approvisionnement.

🔎 Fonctionnement

JS-X-Ray analyse le code JS ou TS en un Abstract Syntax Tree (AST) sans recourir massivement aux RegEx ou aux règles Semgrep. Cela permet le suivi des variables, la résolution des imports dynamiques et la détection d'obsuscations sophistiquées que les outils de correspondance de motifs manquent. La contrepartie est que JS-X-Ray est purement dédié à l'écosystème JavaScript/TypeScript.

💡 Fonctionnalités

  • Suivre require(), import et les imports dynamiques avec un traçage complet des variables
  • Détecter le code obscurci et identifier l'outil utilisé (jsfuck, jjencode, obfuscator.io, et plus encore)
  • Signaler les motifs malveillants : exfiltration de données, sérialisation de process.env, commandes shell non sécurisées
  • Détecter le code vulnérable : eval(), constructeur Function(), regex sujettes au ReDoS, injection SQL
  • Signaler les algorithmes cryptographiques faibles (MD5, SHA1, etc.)
  • Extraire les indicateurs d'infrastructure : URLs, IPs, noms d'hôtes, emails
  • Modes de sensibilité configurables (conservateur/agressif) et système de sondes extensible
  • Prend en charge JavaScript et TypeScript

💃 Pour commencer

Ces paquets sont disponibles dans le dépôt de paquets Node et peuvent être facilement installés avec npm ou yarn.

$ npm i @nodesecure/js-x-ray
# or
$ yarn add @nodesecure/js-x-ray

👀 Utilisation

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 l'utilisation avancée, consultez le README du paquet @nodesecure/js-x-ray.

Workspaces

🐥 Guide des contributeurs

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 bons en exécutant le script suivant :

$ npm run check

[!CAUTION] Si vous introduisez une nouvelle fonctionnalité ou corrigez un bug, assurez-vous d'inclure également des tests pour celle-ci.

APIs internes

Pour les contributeurs travaillant sur les internes de JS-X-Ray, les ressources suivantes documentent les utilitaires de bas niveau et les motifs de manipulation d'AST :

Benchmarks

Les performances de js-x-ray sont mesurées et suivies à l'aide de mitata.

Pour exécuter les benchmarks :

  1. Naviguez vers workspaces/js-x-ray.
  2. Exécutez 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 automatiquement mis à jour à chaque pull request.

Contributeurs ✨

All Contributors

Merci à ces personnes formidables (clé emoji) :

Licence

MIT

Catégories