Torna agli aggiornamenti
New releaseJul 14, 2026

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

Scanner SAST open-source per JavaScript e Node.js. Un analizzatore statico per il rilevamento dei pattern dannosi più comuni 🔬.

Condividi

@nodesecure/js-x-ray

npm version license ossf scorecard slsa level3 github ci workflow

JS-X-Ray è un SAST (Static Application Security Testing) per JavaScript e TypeScript, progettato per identificare pattern malevoli, vulnerabilità di sicurezza e anomalie del codice. Pensalo come ESLint, ma dedicato all'analisi della sicurezza. Nato originariamente per NodeSecure CLI, JS-X-Ray è diventato uno strumento autonomo e serio per la protezione della catena di approvvigionamento.

🔎 Come funziona

JS-X-Ray analizza il codice JS o TS in un Albero Sintattico Astratto (AST) senza un uso estensivo di RegEx o regole Semgrep. Questo consente il tracciamento delle variabili, la risoluzione degli import dinamici e il rilevamento di offuscamenti sofisticati che gli strumenti basati su pattern-matching non riescono a individuare. Il compromesso è che JS-X-Ray è puramente dedicato all'ecosistema JavaScript/TypeScript.

💡 Caratteristiche

  • Tiene traccia di require(), import e import dinamici con tracciamento completo delle variabili
  • Rileva codice offuscato e identifica lo strumento utilizzato (jsfuck, jjencode, obfuscator.io e altri)
  • Segnala pattern malevoli: esfiltrazione di dati, serializzazione di process.env, comandi shell non sicuri
  • Rileva codice vulnerabile: eval(), costruttore Function(), regex soggette a ReDoS, SQL injection
  • Segnala algoritmi crittografici deboli (MD5, SHA1, ecc.)
  • Estrae indicatori di infrastruttura: URL, IP, hostname, email
  • Modalità di sensibilità configurabili (conservativa/aggressiva) e sistema di probe estensibile
  • Supporta sia JavaScript che TypeScript

💃 Per iniziare

Questi pacchetti sono disponibili nel repository di pacchetti Node e possono essere facilmente installati con npm o yarn.

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

👀 Utilizzo

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 });

Per la documentazione API completa, il catalogo degli avvisi e l'uso avanzato, consulta il README del pacchetto @nodesecure/js-x-ray.

Workspaces

🐥 Guida per i collaboratori

Se sei uno sviluppatore interessato a contribuire al progetto, devi prima leggere la guida CONTRIBUTING.

Una volta completato lo sviluppo, verifica che i test (e il linter) siano ancora corretti eseguendo il seguente script:

$ npm run check

[!CAUTION] Nel caso in cui introduci una nuova funzionalità o correggi un bug, assicurati di includere anche i test per essa.

API interne

Per i contributori che lavorano sugli interni di JS-X-Ray, le seguenti risorse documentano utilità di basso livello e pattern di manipolazione dell'AST:

Benchmark

Le prestazioni di js-x-ray vengono misurate e monitorate utilizzando mitata.

Per eseguire i benchmark:

  1. Vai a workspaces/js-x-ray.
  2. Esegui npm run bench.

I risultati dei benchmark sono archiviati in workspaces/js-x-ray/benchmark/report.json. Non modificare manualmente questo file; viene aggiornato automaticamente a ogni pull request.

Collaboratori ✨

All Contributors

Un ringraziamento a queste meravigliose persone (chiave emoji):

Licenza

MIT

Categorie