Bezpečnosť by nemala byť dodatočnou myšlienkou - musí byť súčasťou každého riadku kódu. OWASP Top 10 je štandardný prehľad najkritickejších bezpečnostných rizík.
Najčastejšie zraniteľnosti
1. Injection (SQL, NoSQL, OS)
Injection útoky nastávajú, keď nedôveryhodné dáta sú odoslané do interpretéra ako súčasť príkazu.
Zlý príklad:
const query = `SELECT * FROM users WHERE id = ${userId}`
Správne:
const query = 'SELECT * FROM users WHERE id = ?'
db.query(query, [userId])
2. Broken Authentication
Slabé heslá, chýbajúce rate limiting, nezabezpečené session tokeny - to všetko vedie k kompromitácii účtov.
Riešenia:
- Multi-factor autentifikácia
- Silné hashované heslá (bcrypt, Argon2)
- Bezpečné session management
3. Cross-Site Scripting (XSS)
XSS umožňuje útočníkom vkladať škodlivé skripty do stránok, ktoré vidia ostatní používatelia.
Prevencia:
- Escapovanie výstupu
- Content Security Policy (CSP)
- Použitie moderných frameworkov s auto-escapingom
4. Broken Access Control
Používatelia môžu pristupovať k dátam alebo funkciám, ku ktorým nemajú oprávnenie.
5. Security Misconfiguration
Predvolené nastavenia, chýbajúce aktualizácie, verbose error messages.
Praktické kroky
- Používajte bezpečnostné hlavičky - CSP, HSTS, X-Frame-Options
- Validujte všetky vstupy - nikdy nedôverujte dátam od používateľa
- Aktualizujte závislosti -
npm auditby mal byť súčasťou CI/CD - Logujte bezpečnostné udalosti - pre audit a detekciu
- Penetračné testovanie - pravidelne testujte svoju aplikáciu
Záver
Bezpečnosť je kontinuálny proces, nie jednorazová úloha. Investícia do bezpečnosti sa vždy vráti - úniky dát stoja oveľa viac než prevencia.