Zum Hauptinhalt springen

JavaScript / TypeScript · SAST

JavaScript- und TypeScript-SAST, das vollständig offline läuft

Auditieren Sie Ihre Node.js-Backends und Front-End-Frameworks (React, Vue, Angular, Svelte) auf XSS, Prototype Pollution, Injection-Fehler und Supply-Chain-Risiken — ohne eine einzige Zeile in die Cloud hochzuladen.

Geprüfte Frameworks & Bibliotheken

Wir testen die Abdeckung über Fixtures auf diesen Frameworks. Neue Muster werden in jedem Builtin-Regel-Release ergänzt.

Express Fastify Next.js Nuxt NestJS Hapi React Vue Angular Svelte Mongoose Sequelize Prisma TypeORM Knex jsonwebtoken cookie-parser

Häufigste erkannte CWE-Klassen

Diese CWE-Klassen treten in modernen Codebasen dieser Sprache am häufigsten auf. StaticCodeAudit liefert dedizierte Regeln für jede, gemappt auf OWASP Top 10 / ISO 27001 / ASVS, sofern relevant.

CWE-79

Cross-Site Scripting (XSS)

innerHTML, dangerouslySetInnerHTML in React, v-html in Vue, Angular bypassSecurityTrust* mit User-Daten. Stored-, Reflected- und DOM-basierte Varianten abgedeckt.

Erkannt von SCA-Regel: xss_innerhtml

CWE-1321

Prototype Pollution

Rekursive Object.assign, _.merge, oder ungeschütztes obj[key] = value wenn key vom User kommt. Ein einziger __proto__-Key kann alle nachgelagerten Objekte brechen.

Erkannt von SCA-Regel: prototype_pollution

CWE-89

SQL-Injection

Sequelize.literal(), Raw-Queries in Prisma $queryRaw\`${input}\`, Mongoose $where mit Strings, Knex .raw() mit Concat.

Erkannt von SCA-Regel: sql_injection_concat

CWE-918

SSRF

axios.get(url), fetch(url), http.get auf User-URLs. Besonders gefährlich in Serverless via interne Metadaten-Endpoints.

Erkannt von SCA-Regel: taint_ssrf

CWE-798

Hartkodierte Zugangsdaten

In .env.example, config.js committete API-Keys, oder React process.env.REACT_APP_* im Client-Bundle exponiert.

Erkannt von SCA-Regel: hardcoded_secret

CWE-915

Mass Assignment

User.update(req.body) ohne Field-Allowlist. Lässt Angreifer Privilegien eskalieren (isAdmin: true) via JSON-Body.

Erkannt von SCA-Regel: mass_assignment

Verwundbar vs. sicher — drei kurze Beispiele

CWE-79 Erkannt von SCA-Regel: xss_innerhtml
❌ Verwundbar
// Verwundbar — React dangerouslySetInnerHTML
function Bio({ user }) {
    return <div dangerouslySetInnerHTML={{ __html: user.bio }} />;
}
✅ Sicher
// Sicher — Textinhalt, keine HTML-Interpretation
function Bio({ user }) {
    return <div>{user.bio}</div>;
}
CWE-1321 Erkannt von SCA-Regel: prototype_pollution
❌ Verwundbar
// Verwundbar — Deep Merge ohne Proto-Guard
function merge(target, source) {
    for (const key in source) {
        if (typeof source[key] === "object") {
            merge(target[key] = target[key] || {}, source[key]);
        } else { target[key] = source[key]; }
    }
}
✅ Sicher
// Sicher — blockiert __proto__/constructor
function merge(target, source) {
    for (const key of Object.keys(source)) {
        if (key === "__proto__" || key === "constructor") continue;
        if (typeof source[key] === "object") {
            merge(target[key] = target[key] || {}, source[key]);
        } else { target[key] = source[key]; }
    }
}
CWE-89 Erkannt von SCA-Regel: sql_injection_concat
❌ Verwundbar
// Verwundbar — Concat in Sequelize.literal
const users = await User.findAll({
    where: sequelize.literal(`name = \'${req.query.name}\'`)
});
✅ Sicher
// Sicher — Bind-Parameter
const users = await User.findAll({
    where: { name: req.query.name }
});

Was StaticCodeAudit erkennt (diese Sprache)

  • XSS in React dangerouslySetInnerHTML, Vue v-html, Angular Trust Bypass, Vanilla innerHTML
  • Prototype Pollution via Deep Merge, dynamische Key-Zuweisung
  • SQL-Injection in Sequelize, Mongoose, Prisma, TypeORM, Knex Raw-Queries
  • NoSQL-Injection (Mongoose $where mit Strings, Mongo-Operatoren in User-Input)
  • SSRF via axios, fetch, http mit User-URLs
  • Hartkodierte Secrets (API-Keys, JWT-Secrets, AWS, Stripe, GitHub, Slack-Tokens)
  • Mass Assignment in Sequelize/Mongoose ohne Field-Allowlist
  • Unsichere Cookies (httpOnly, secure, sameSite Flags)
  • Fehlendes CSRF-Token in Express-Formularen
  • Path Traversal in fs.readFile mit User-Input
  • Unsichere Krypto (MD5 in crypto, hartkodierter IV, schwache Zufallszahlen)
  • Open Redirect (res.redirect(req.query.url))
  • Veraltete Abhängigkeiten via package.json-Muster
  • CI/CD-Fehlkonfigurationen (.gitlab-ci, GitHub Actions, npm Scripts)

Auditieren Sie Ihren Code

Auditieren Sie Ihre Node.js-Backends und Front-End-Frameworks (React, Vue, Angular, Svelte) auf XSS, Prototype Pollution, Injection-Fehler und Supply-Chain-Risiken — ohne eine einzige Zeile in die Cloud hochzuladen.

Demo-Binary herunterladen Geführte Demo buchen