Lista de verificación de seguridad para aplicaciones web
Una lista práctica e independiente de proveedores para cualquiera que publique una aplicación web, ya sea que escribiera cada línea a mano o que la construyera con prompts de IA ("vibe coding"). La IA escribe código que funciona en el camino feliz y aun así deja agujeros reales, así que una función que funciona no demuestra nada sobre la seguridad. Esta lista es lo que conviene verificar realmente antes y después de publicar.
Está organizada por categorías. Empieza por donde quieras o recórrelas en orden. Cada página enumera comprobaciones concretas: qué probar, por qué importa y cómo corregirlo.
Cómo usarla
- Trata cada punto como una prueba, no como una lectura. Intenta el ataque y luego confirma la corrección.
- Prueba con entradas no válidas y como el usuario equivocado, no solo con el flujo normal.
- Cuando el código parezca correcto, ejecuta un escaneo contra la URL desplegada para detectar cualquier regresión entre prompts.
Categorías
- Autenticación y sesiones: cómo las personas demuestran quiénes son y cómo las mantienes con la sesión iniciada sin permitir que alguien robe el token.
- Autorización y control de acceso: asegurarse de que un usuario con sesión iniciada no pueda leer ni cambiar datos que no son suyos (IDOR, multi-inquilino).
- Validación de entrada e inyección: inyección SQL, XSS, SSRF, deserialización insegura y subida de archivos.
- APIs y solicitudes: CSRF, CORS, asignación masiva y ataques basados en la forma de las solicitudes.
- Secretos y protección de datos: claves, cifrado en reposo y en tránsito, datos personales y derechos sobre los datos.
- Disponibilidad y abuso: limitación de tasa, denegación de servicio y consumo desbocado de recursos.
- Infraestructura y despliegue: puertos y cortafuegos, contenedores, cabeceras de seguridad, TLS y paneles de administración expuestos.
- Dependencias, registros y proceso: cadena de suministro, secretos en git, manejo de errores, monitoreo y pruebas independientes.
La versión corta
Si solo tienes una hora, revisa estos cinco puntos primero. Son los más comunes y los más dañinos en auditorías reales:
- Control de acceso roto. Inicia sesión como el usuario A y pide el objeto del usuario B por su id. Si se devuelve, tienes un agujero. Consulta autorización.
- Secretos en el cliente o en git. Busca claves en el bundle del navegador y en el repositorio. Todo lo que se haya confirmado en git está comprometido. Consulta secretos.
- Sin limitación de tasa en el inicio de sesión. La fuerza bruta es trivial sin ella. Consulta disponibilidad.
- Falta protección contra CSRF o login-CSRF. Consulta APIs y solicitudes.
- Puertos abiertos más allá del cortafuegos. Los contenedores suelen publicar puertos por encima del cortafuegos. Consulta infraestructura.
Esta lista la publica el equipo de Arc OS. Nosotros mismos nos sometemos a ella; puedes usarla en tu producto. Es una línea base de partida, no una certificación, y no reemplaza una prueba de penetración independiente.