Diseño Inseguro
La arquitectura de la aplicación tiene fallas de seguridad fundamentales — lógica de negocio en el cliente, falta de validación server-side o sin modelado de amenazas.
Cómo Funciona
El diseño inseguro es diferente de bugs de implementación — es una falla en la arquitectura misma. Patrones comunes incluyen poner lógica de autorización solo en el frontend (condicionales React), depender de validación client-side sin checks server-side, o diseñar flujos que pueden ser abusados (como intentos ilimitados de password reset). Ninguna implementación perfecta puede arreglar un diseño fundamentalmente inseguro.
// React component — auth check only in frontend
{user.role === 'admin' && (
<button onClick={deleteAllUsers}>
Delete All Users
</button>
)}// API route — auth check on the server
app.delete('/api/users', async (req, res) => {
if (req.auth.role !== 'admin') {
return res.status(403).json({ error: 'Forbidden' });
}
await db.users.deleteMany();
});Ejemplo Real
La función Find Friends de Snapchat (2014) tenía un diseño inseguro que permitía a atacantes enumerar todos los números de teléfono haciendo brute-force a la API. 4.6 millones de usernames y teléfonos se filtraron porque la API no tenía rate limiting por diseño.
Cómo Prevenirlo
- Siempre valida autorización en el servidor, nunca solo en el frontend
- Implementa rate limiting en operaciones sensibles
- Usa modelado de amenazas durante la fase de diseño
- Aplica defensa en profundidad — múltiples capas de seguridad
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Control de Acceso Roto
highLos usuarios pueden actuar fuera de sus permisos, accediendo a datos de otros usuarios o funcionalidad admin sin verificaciones de autorización.
Fallos Criptográficos
highDatos sensibles expuestos por encriptación débil o faltante — usar algoritmos obsoletos como MD5/SHA1, guardar passwords en texto plano o transmitir datos sin TLS.
Fallos en Cadena de Suministro
mediumTu aplicación hereda vulnerabilidades de dependencias de terceros — paquetes desactualizados con CVEs conocidos que los atacantes explotan activamente.
Configuración de Seguridad Incorrecta
mediumConfiguraciones por default, CORS abierto, modo debug en producción o mensajes de error detallados exponen tu aplicación a atacantes.