Laboratorio de ingeniería.
Este sitio es también mi banco de pruebas: pipeline con rollback automático, chaos engineering, ataques controlados contra mi propia pasarela de pagos. Lo que ves abajo son los resultados reales, leídos de la misma base de datos que usa el sistema.
Cada experimento define qué debería pasar (la defensa) y verifica qué pasó de verdad. «Superado» significa que el sistema se defendió solo: sin pagos duplicados, sin estados a medias, sin eventos huérfanos.
- Pagos en BD
- 1
- Estado
- creado
- Versión
- v0
- Eventos aplicados
- 0 de 0
Un solo pago en la base, y los dos clics reciben la misma referencia.
- Pipelines exitosos · 30d
- 100%
- Cobertura de tests
- 56.6%
- Experimentos superados
- 21/21
- Ataques absorbidos (pagos)
- 6
- Mutation score
- 53.8%
Cada push corre los tests y reporta el resultado aquí. Si el deploy pasa pero el health check post-deploy falla, el pipeline revierte solo. El repositorio y sus Actions son públicos: cada fila enlaza a los logs reales.
- dab7259 ↗OK5m 27s · 19 de oct, 08:40 p. m.
- c342dae ↗OK3m 27s · 19 de oct, 08:36 p. m.
- 4e0e42e ↗OK2m 45s · 19 de oct, 08:29 p. m.
- d9bd044 ↗OK6m 11s · 19 de oct, 08:12 p. m.
- 80aab9f ↗OK3m 43s · 19 de oct, 08:02 p. m.
- df39158 ↗OK2m 57s · 19 de oct, 07:58 p. m.
- cc8fee4 ↗OK2m 25s · 8 de oct, 03:53 p. m.
- 5978e8a ↗OK1m 47s · 6 de oct, 08:48 p. m.
- 15cead3 ↗OK14m 21s · 6 de oct, 08:40 p. m.
- eaf606b ↗OK4m 14s · 6 de oct, 07:48 p. m.
- cab51bc ↗OK2m 11s · 6 de oct, 07:37 p. m.
- 90c526a ↗OK4m 1s · 6 de oct, 07:03 p. m.
- 9d80e2c ↗OK2m 12s · 6 de oct, 06:59 p. m.
- e8c0dec ↗OK2m 36s · 6 de oct, 06:44 p. m.
- 0408f69 ↗OK2m 54s · 6 de oct, 06:41 p. m.
Análisis estático de dependencias y código, más accesibilidad sobre las páginas públicas, en cada push. Lo que cuenta no es un scan verde sino el ciclo: cada hallazgo se sigue hasta que queda resuelto o aceptado a conciencia.
1 punto = 3 hallazgos
Una escalera de carga creciente contra un entorno desechable hasta encontrar el punto donde el sistema se rompe y cuánto tarda en volver cuando la carga cesa. Medido en meseta, no en la rampa: promediar las dos mezcla un nivel sano con uno saturado.
- Sostenido sin error
- 50/s
- Punto de quiebre
- 200/s
- Recuperación
- 75s
- p95 de la corrida
- 10.0s
Pasarela propia con llaves de idempotencia, máquina de estados sin retrocesos y verificación de firma en webhooks. Los contadores de abajo son eventos hostiles que llegaron y fueron detectados y neutralizados, no aplicados.
- Pagos sandbox
- 23
- Webhooks duplicados ignorados
- 2
- defensa 2 · Evento ya visto
- Eventos fuera de orden contenidos
- 4
- defensa 3 · Transición legal
- Montos adulterados rechazados
- 0
- defensa Verificación de monto
Construido para mis compañeros de clase: pega cualquier dominio y obtén, en vivo, 12 pruebas - cabeceras de seguridad, certificado TLS, DNS, vencimiento del dominio, robots.txt, sitemap.xml, metadatos SEO, rendimiento básico, accesibilidad heurística y un reporte Lighthouse real vía la API de Google PageSpeed Insights. Todo se lee de respuestas HTTP públicas - nada intrusivo - con límite de 5 análisis por minuto por IP y protección anti-SSRF (rechaza IPs privadas o de red interna) para que no se pueda usar como proxy hacia infraestructura ajena.
Analizador de sitios
Pega un dominio y mira las 12 pruebas correr en vivo, con streaming de resultados.
Analizar un dominio →Fingerprint de dispositivos
Demo interactiva: abre una sala desde dos dispositivos y mira cómo se identifican sin cookies ni login.
Probar en vivo →Monitoreo y SLOs
Uptime, latencia p95 y presupuesto de error medidos por el motor de checks propio.
Ver /status →Security Operations
Micro-SIEM propio: intentos de intrusión detectados y bloqueados, en agregado y en vivo.
Ver /security →Los datos no son capturas ni ejemplos: se leen en el servidor de la misma base (Turso/libSQL) donde el pipeline, los experimentos y la pasarela escriben sus resultados. Lo que falla también se muestra.
Los experimentos de chaos corren con cinturones de seguridad: TTL máximo de 15 minutos, rutas críticas excluidas por código y kill-switch. Todo el sistema es fail-open: un fallo del laboratorio nunca tumba el sitio.
El detalle crudo (parámetros, payloads, flags activos) vive en el panel privado. Aquí se publica el veredicto agregado - suficiente para verificar, sin regalar el mapa interno.