A Node alkalmazás biztonságossá tétele azt jelenti, hogy közös webes sebezhetőségek (OWASP Top 10) elleni védelemmel a többszintű védelmet biztosítunk — bemeneti kezelés, hitelesítés, függőségek és konfigurálás. A biztonság rétegelt (mélységi védelem), nem egyetlen javítás.
1. Érvényesítse és tisztítsa meg az összes bemenetet
import { z } from "zod";
// never trust client input — validate shape/type before using it
const schema = z.object({ email: z.string().email(), age: z.number().min(0) });
const data = schema.parse(req.body); // rejects malformed/malicious input
2. Akadályozza meg az injekciót (SQL, NoSQL, parancs)
// ❌ string concatenation → SQL injection
db.query(`SELECT * FROM users WHERE id = ${req.params.id}`);
// ✅ parameterized queries — input is data, never executable SQL
db.query("SELECT * FROM users WHERE id = $1", [req.params.id]);
Mindig használjon paraméteres lekérdezéseket / ORM-t, és soha ne építsen parancsokat felhasználói bemenetből (lásd parancsinjekciót a child_process segítségével).
3. Hitelesítés és titkok
✓ Hash passwords with bcrypt/argon2/scrypt (slow + salted) — never plain/SHA
✓ Store secrets in env vars, never in code/git
✓ Use httpOnly, secure, sameSite cookies for sessions (XSS-resistant)
✓ Sign/verify JWTs properly; keep tokens short-lived
4. Állítson be biztonsági fejléceket és sebességkorlátot
import helmet from "helmet";
import rateLimit from "express-rate-limit";
app.use(helmet()); // sets secure HTTP headers (CSP, HSTS, X-Frame-Options, etc.)
app.use(rateLimit({ windowMs: 60_000, max: 100 })); // throttle abuse/brute-force
A helmet védő fejléceket ad hozzá; a sebességkorlát a brute-force és a DoS elleni védelmet biztosít.
5. Tartsa biztonságban a függőségeket (ellátási lánc)
npm audit # check installed packages for known vulnerabilities
npm audit fix
# + keep deps updated; review postinstall scripts; pin versions via the lockfile
A Node kód nagy része harmadik féltől származó csomag — a nem biztonságos függőségek nagy támadási vektor. Rendszeresen auditálja és frissítse.
6. Egyéb nélkülözhetetlen intézkedések
✓ Use HTTPS (TLS) everywhere; redirect HTTP → HTTPS
✓ Don't leak error details/stack traces to clients in production
✓ Escape output to prevent XSS (frameworks usually do this)
✓ Implement proper authorization (not just authentication) — check permissions per action
✓ CORS configured to an allowlist, not "*" for credentialed APIs
✓ Limit request body size to prevent payload-based DoS
Miért fontos
A webalkalmazások állandó célpontok, a Node alkalmazások pedig ki vannak téve a webes sebezhetőségek teljes spektrumának — injekciók, rossz hitelesítés, XSS, nem biztonságos függőségek, helytelen konfiguráció.
Egy intézkedés sem elégséges; a biztonság rétegelt: érvényesítse a bemeneteket, paraméteres lekérdezéseket használjon, megfelelően hash-elje a jelszavakat, biztonságosan kezelje a titkokat, állítson be védő fejléceket, korlátoz sebességet, auditálja a függőségeket, és használjon HTTPS-t.
Ezeknek a gyakorlatoknak (és a mögöttük lévő OWASP kockázatoknak) a megértése alapvető felelősség mindazok számára, akik éles Node szolgáltatásokat építenek — egy figyelmen kívül hagyott réteg (egy injekció, egy szivárgott titok, egy javítatlan függőség) az egész rendszert veszélyeztetheti.
