Conceptos

Codificación Segura

Prácticas de desarrollo que previenen vulnerabilidades de seguridad desde el diseño, incluyendo validación de inputs, manejo de errores y principios de defensa en profundidad.

seed#secure-coding#security#owasp#validation#best-practices#development

¿Qué es?

Secure coding son prácticas de desarrollo que previenen vulnerabilidades de seguridad desde el diseño del código. No es solo usar herramientas de escaneo — es escribir código que sea seguro por construcción.

OWASP Top 10 (2021)

  1. Broken Access Control
  2. Cryptographic Failures
  3. Injection
  4. Insecure Design
  5. Security Misconfiguration
  6. Vulnerable Components
  7. Authentication Failures
  8. Software Integrity Failures
  9. Logging Failures
  10. Server-Side Request Forgery

Principios

  • Validar inputs: nunca confiar en datos del usuario
  • Sanitizar outputs: escapar datos según el contexto
  • Mínimo privilegio: dar solo los permisos necesarios
  • Defensa en profundidad: múltiples capas de protección
  • Fail securely: los errores no deben exponer información

Prácticas específicas

VulnerabilidadCódigo inseguroCódigo seguro
SQL Injectionquery("SELECT * FROM users WHERE id=" + id)query("SELECT * FROM users WHERE id=$1", [id])
XSSinnerHTML = userInputtextContent = userInput o sanitizar con DOMPurify
Path TraversalreadFile("/uploads/" + filename)Validar que filename no contiene ..
Hardcoded secretsconst key = "sk-abc123"const key = process.env.API_KEY
Insecure cryptomd5(password)bcrypt.hash(password, 12)

Reglas generales:

  • Usar prepared statements (no concatenar SQL)
  • Escapar HTML para prevenir XSS
  • Validar y sanitizar file uploads
  • No exponer stack traces en producción
  • Usar bibliotecas de crypto probadas (no implementar propias)

¿Por qué importa?

La seguridad no se añade al final — se construye desde el código. Las prácticas de codificación segura previenen vulnerabilidades antes de que lleguen a producción, donde el costo de remediarlas es órdenes de magnitud mayor.

Referencias

Conceptos