15 — Ciberseguridad para Devs
No vas a ser hacker, pero TODO dev tiene que saber seguridad básica.
⚠️ Importante: Hacking ético = con permiso. Sin permiso es delito.
🎯 Lo que TODO dev debe saber
OWASP Top 10 (las vulnerabilidades más comunes)
- Injection (SQL injection)
- Broken Authentication
- Sensitive Data Exposure
- XML External Entities (XXE)
- Broken Access Control
- Security Misconfiguration
- Cross-Site Scripting (XSS)
- Insecure Deserialization
- Components with Known Vulnerabilities
- Insufficient Logging
🔗 https://owasp.org/Top10/
🛡️ Reglas de oro de seguridad web
- Nunca confíes en input del usuario. Validá TODO en el backend.
- No guardes contraseñas en texto plano. Usá bcrypt/argon2.
- Usá HTTPS siempre. Cloudflare/Let’s Encrypt es gratis.
- No commitees
.envni secrets. Usá.gitignore. - Mantené dependencias al día.
npm audit,dependabot. - Principio de menor privilegio. Solo permisos necesarios.
- Rate limiting en endpoints sensibles.
- Logueá pero NUNCA passwords/tokens.
🔓 Tipos de ataques que tenés que conocer
SQL Injection
-- ❌ Inseguro
"SELECT * FROM users WHERE name = '" + input + "'"
-- ✅ Seguro (parametrizado)
"SELECT * FROM users WHERE name = ?"
XSS (Cross-Site Scripting)
- Filtrar HTML del usuario
- React/Vue escapan por defecto
- Cuidado con
dangerouslySetInnerHTML
CSRF (Cross-Site Request Forgery)
- Usar tokens CSRF
- SameSite cookies
Man-in-the-Middle
- Solucionado con HTTPS
📚 Cursos y recursos
Para devs
- 📺 Web Security - HackTricks
- 📖 PortSwigger Web Security Academy ⭐ GRATIS
- 📺 Curso Hacking Ético - S4vitar
- 📖 OWASP Cheat Sheets
Hacking ético
- 📺 HackTheBox — máquinas para hackear (legal)
- 📺 TryHackMe — más amigable que HTB
- 🎓 OSCP (certificación pro, cara pero respetada)
- 🎓 eJPT (entry level)
🔍 Tools del trade
Para devs (defensivo)
- Snyk — escanea vulnerabilidades en deps
- SonarQube — análisis de código
- GitGuardian — detecta secrets commiteados
- Dependabot — updates automáticos
Para pentesters (ofensivo, con permiso)
- Burp Suite — proxy web
- Nmap — escanear redes
- Metasploit — framework de exploits
- Wireshark — análisis de tráfico
- John the Ripper / Hashcat — cracking de hashes
🛂 Autenticación: lo que TENÉS que saber
Passwords
// ✅ Bien
import bcrypt from 'bcryptjs';
const hashed = await bcrypt.hash(password, 12);
const valid = await bcrypt.compare(input, hashed);
JWT (JSON Web Tokens)
- Para stateless auth
- Cortos en vida (15-60 min)
- Refresh tokens para sesiones largas
OAuth 2.0
- Login con Google/GitHub/etc.
- Usá librerías probadas, no la hagas a mano
MFA / 2FA
- TOTP (Google Authenticator)
- WebAuthn / Passkeys (lo moderno)
🎓 Certificaciones (para carrera en seguridad)
| Cert | Nivel | Precio aprox |
|---|---|---|
| eJPT | Junior | USD 250 |
| Security+ (CompTIA) | Junior/Medio | USD 400 |
| OSCP | Medio/Senior | USD 1600 |
| CEH | Medio | USD 1200 |
| CISSP | Senior | USD 750 |
🎯 Proyectos para practicar
- Hacé una app con login seguro (bcrypt + JWT)
- Implementá rate limiting en una API
- Resolvé 5 retos en PortSwigger Web Security Academy
- Capturá una flag en TryHackMe (sala “Web Fundamentals”)
- Configurá CSP headers en una web
- Auditá tu propio repo con
npm audity arreglá todo