Revisa tu código en 30 segundos y te dice qué dejaste abierto: llaves a la vista, puertas sin candado, tu base de datos accesible desde internet.
Corrimos el Guardián sobre una app chica, hecha como se hacen hoy. Esto salió tal cual — con archivo, línea y qué hacer.
================================================================== GUARDIAN DE SEGURIDAD -- el estandar de produccion en codigo ================================================================== Revisados: 1 archivos | Exenciones (guardian-ok): 0 [CRITICO] 4 hallazgo(s) -------------------------------------------------------------- app.py:8 (capa 08) [fail-open-cors] > CORS_ORIGINS = os.getenv("CORS_ORIGINS", "*") = CORS con default '*': si falta la env, tu API se abre a TODO internet. Default = lista de tus dominios, o no arrancar. app.py:14 (capa 02) [fail-open-auth] > if token != os.getenv("ADMIN_TOKEN", ""): = Si falta la env, ''=='' y PASA cualquiera (falla abierto). app.py:21 (capa 05) [sql-concatenado] > cur.execute(f"SELECT * FROM clientes WHERE nombre = '{nombre}'") = Si el dato viene del usuario, puede reescribir tu consulta y sacar o borrar toda la tabla. app.py:31 (capa 12) [pii-en-log] > print(f"Nuevo registro: {datos['telefono']} codigo {datos['codigo']}") = Dato sensible escrito a los logs en texto plano. [ALTO] 1 hallazgo(s) -------------------------------------------------------------- app.py:9 (capa 04) [secreto-hardcode] > STRIPE_KEY = "sk_live_51Hx8pQrTmVn2wYzA9bCd3EfG" = Llave de cobro escrita dentro del codigo. [MEDIO] 1 hallazgo(s) -------------------------------------------------------------- app.py:26 (capa 05) [prompt-injection] > prompt = f"Eres un asistente. Contesta esto: {mensaje}" = Texto del USUARIO pegado directo en el prompt: puede escribir "ignora tus instrucciones" y secuestrar tu agente. ================================================================== TOTAL: 6 (4 criticos, 1 altos) >> PUERTA CERRADA: hay que revisar esto antes de publicar. ==================================================================
Cada una salió de auditar sistemas reales, en producción, con clientes pagando. No es una lista de manual — es una lista de cicatrices.
Si falta un dato de configuración, tu programa deja pasar a cualquiera en vez de cerrar. Es el error que menos se ve y más cuesta.
Reglas que dejan leer y escribir a cualquiera en internet. Es el error número uno de las apps hechas con inteligencia artificial.
Consultas armadas pegando texto, comandos del sistema, código que se ejecuta desde texto. Si el dato viene del usuario, el usuario manda.
Llaves de cobro, llaves privadas, contraseñas dentro del código. Y ojo: si ya subiste eso a un repositorio, borrarlo no lo borra.
Teléfonos, códigos de verificación y secretos en texto plano, donde los ve cualquiera con acceso a los logs.
Texto del usuario pegado directo en el prompt de tu agente. Puede escribir “ignora tus instrucciones” y tomar el control. Casi nadie lo revisa.
Trae tres cosas: el Guardián, un LEEME con todo esto por escrito, y un lanzador para usarlo sin escribir comandos. Necesitas Python instalado — si construiste algo con inteligencia artificial, lo más probable es que ya lo tengas.
Sí, así de fácil: sueltas tu carpeta encima de Revisar Seguridad.cmd y se revisa sola. (Windows.)
Si prefieres la terminal —o estás en Mac o Linux— párate en tu proyecto y corre:
python guardian.py
O dile exactamente qué revisar:
python guardian.py "C:\ruta\a\tu\proyecto"Cada hallazgo trae el archivo, el número de línea, la línea exacta y qué hacer. Empieza por los críticos.
Pégale esto a tu constructor —Claude Code, Antigravity, Codex o el que uses— junto con la salida del Guardián. Está escrito para que arregle de a uno y no te rompa lo que ya funcionaba:
Corrí un revisor de seguridad sobre este proyecto y me dio los hallazgos que van al final. Antes de tocar nada: 1. Explícame en español sencillo qué significa cada hallazgo y qué podría pasarme si lo dejo así. 2. Dime en qué orden los arreglarías y por qué. Después arréglalos DE UNO EN UNO. Por cada uno: - Dime qué vas a cambiar ANTES de cambiarlo. - Haz solo ese cambio. No toques nada más "de paso". - Corre el programa y enséñame la salida para comprobar que sigue funcionando. Si alguno es falso positivo en mi caso, dímelo y explícame por qué, en lugar de "arreglarlo". No muevas mis llaves ni mis datos a ningún lugar sin avisarme primero. --- HALLAZGOS --- (pega aquí la salida del Guardián)
Va escrito así a propósito: de uno en uno y pidiendo evidencia. Si le dices “arregla todo esto”, cambia veinte cosas de golpe, no puedes revisar ninguna, y lo que se rompa no vas a saber dónde. Los críticos casi siempre se resuelven así — los que no, escríbeme.
Pasa, y es normal: a veces algo se ve mal y en tu caso está bien. Le pones
# guardian-ok: la razón al final de la línea y ya no te la marca.
Un detector que grita en falso se ignora, y un detector que se ignora es peor que no tener ninguno. Por eso esa salida existe.
Soy Héctor. Construyo sistemas para negocios y tengo cosas corriendo en producción, con clientes pagando.
Me he quemado. Dejé una llave dentro del código y me enteré meses después. He tenido un endpoint sin candado. He tenido datos de un cliente que se le podían aparecer a otro — y una de esas todavía la traigo abierta hoy, identificada y con fecha de arreglo.
El Guardián es eso: las cicatrices empaquetadas. Cada regla es algo que ya me costó a mí, o que encontré auditando algo real.
Y esa diferencia importa: si sale limpio, no cantes victoria. Significa que no pisaste estas quince minas. Hay más.
El Guardián automatiza la primera capa del método de seguridad que uso en mis propios sistemas: los errores conocidos que un script puede detectar leyendo tu código. Es la única capa que se puede regalar en un archivo — por eso es gratis.
Las otras doce no las puede ver ningún script, porque no viven en una línea de código: el aislamiento entre clientes (que los datos de uno jamás se le aparezcan a otro), el diseño de la autenticación, las reglas de tu base de datos, el manejo de llaves y respaldos, lo que tu app le permite a la IA, los procesos de deploy. Esas se auditan con método, capa por capa — y ese método sigue creciendo: me sigo formando y sigo auditando sistemas reales.
Tarda menos de lo que tardaste leyendo esta página.
Y si sale limpio, te acabas de ahorrar la duda.