Geprüfte Frameworks & Bibliotheken
Wir testen die Abdeckung über Fixtures auf diesen Frameworks. Neue Muster werden in jedem Builtin-Regel-Release ergänzt.
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 — React dangerouslySetInnerHTML
function Bio({ user }) {
return <div dangerouslySetInnerHTML={{ __html: user.bio }} />;
}
// Sicher — Textinhalt, keine HTML-Interpretation
function Bio({ user }) {
return <div>{user.bio}</div>;
}
CWE-1321
Erkannt von SCA-Regel: prototype_pollution
// 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 — 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 — Concat in Sequelize.literal
const users = await User.findAll({
where: sequelize.literal(`name = \'${req.query.name}\'`)
});
// Sicher — Bind-Parameter
const users = await User.findAll({
where: { name: req.query.name }
});
Was StaticCodeAudit erkennt (diese Sprache)
- XSS in React
dangerouslySetInnerHTML, Vuev-html, Angular Trust Bypass, VanillainnerHTML - Prototype Pollution via Deep Merge, dynamische Key-Zuweisung
- SQL-Injection in Sequelize, Mongoose, Prisma, TypeORM, Knex Raw-Queries
- NoSQL-Injection (Mongoose
$wheremit Strings, Mongo-Operatoren in User-Input) - SSRF via
axios,fetch,httpmit 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,sameSiteFlags) - Fehlendes CSRF-Token in Express-Formularen
- Path Traversal in
fs.readFilemit 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