El OWASP Top 10 (2021) ordena riesgos por prevalencia en datos agregados de remediación y fuzzing. El control de acceso roto tomó el primer puesto y sigue ahí en la edición de API: el OWASP API Security Top 10 (2023) pone a BOLA primero. Un scanner automatizado captura dependencias desactualizadas y headers faltantes. El mismo scanner no captura el endpoint que devuelve el pedido de otro cuando cambias el ID en la URL.
Inyección: parametrizar y seguir parametrizando
La consulta parametrizada mata la inyección SQL: los valores se vuelven parámetros, separados del texto del comando. Los ORM resuelven el caso común y resbalan en la ruta cruda; un query() con template string reabre la brecha. La inyección aparece en LDAP, NoSQL y fórmulas de hoja de cálculo. Una feature con LLM trae inyección de prompt: el texto del usuario se vuelve instrucción del modelo. Separas datos de sistema de datos de usuario y validas la salida contra un schema antes de cualquier acción con efecto real.
Control de acceso roto: la prueba de dos usuarios
Para cada recurso direccionable por ID, creas dos usuarios de prueba, te autenticas como A, lees el recurso de A, te autenticas como B e intentas leer el mismo recurso. IDOR y BOLA mueren en esa prueba. En multi-tenant, el filtro de tenant vive en la capa de datos, en toda consulta; un join olvidado filtra filas de otro cliente. Payloads gigantes sin límite de tamaño y endpoints sin rate limit entran en la misma lista del OWASP API Security, en el ítem 4 y el ítem 9.
Fallos criptográficos y XSS
La contraseña vive en Argon2id o bcrypt, con el costo calibrado al hardware de producción; MD5 o SHA-256 en crudo cae ante una tabla rainbow en horas. Los datos sensibles en reposo usan el cifrado del proveedor cloud y TLS 1.3 en tránsito, con HSTS fijando el protocolo. El XSS muere con codificación de salida por contexto y una Content-Security-Policy restrictiva; un nonce en la script tag alinea el CSP con el bundle generado por el build.
El checklist de quince minutos
Fijas los headers: CSP, HSTS, X-Content-Type-Options: nosniff, frame-ancestors sin origen externo. Activas el escaneo de dependencias en CI con fallo en vulnerabilidad crítica y el escaneo de secretos en el repositorio. Escribes una prueba automatizada de control de acceso por endpoint y corres la suite en cada merge. La OWASP Cheat Sheet Series trae implementación por framework para cada ítem; el equipo elige un cheat sheet por sprint y cierra un riesgo real por vez.
¿Te gustó el contenido?
Construyo productos web y soluciones con IA de la manera correcta — arquitectura sólida, código sostenible y entrega real.
Hablemos