Gratis · sin cuenta

Tu app funciona.Eso no quiere decir
que esté lista.

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.

Descargar el Guardián Cómo se usa
sin registro · tu código no sale de tu máquina · o baja solo el archivo .py
Esto es la capa1de13 la única que un script puede revisar solo — las otras 12 se auditan con método ↓
~/mi-app · guardian.py
6from fastapi import FastAPI
8CORS = os.getenv("CORS", "*")CRÍTICO
9KEY = "sk_live_51Hx8pQrTmV…"ALTO
12def login(token):
14if token != os.getenv("ADMIN", ""):CRÍTICO
20def buscar(nombre):
21cur.execute(f"… WHERE n='{nombre}'")CRÍTICO
24def responder(mensaje):
26prompt = f"Contesta: {mensaje}"MEDIO
29def registrar(datos):
31print(f"reg: {tel} cod {cod}")CRÍTICO
TOTAL: 6 hallazgos · 4 críticos PUERTA CERRADA
La salida real

No es una animación bonita.
Es lo que imprime.

Corrimos el Guardián sobre una app chica, hecha como se hacen hoy. Esto salió tal cual — con archivo, línea y qué hacer.

python guardian.py
==================================================================
  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.
==================================================================
Qué busca

15 fallas concretas

Cada una salió de auditar sistemas reales, en producción, con clientes pagando. No es una lista de manual — es una lista de cicatrices.

Crítico

Puertas que fallan abiertas

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.

Crítico

Tu base de datos abierta

Reglas que dejan leer y escribir a cualquiera en internet. Es el error número uno de las apps hechas con inteligencia artificial.

Crítico

Inyección

Consultas armadas pegando texto, comandos del sistema, código que se ejecuta desde texto. Si el dato viene del usuario, el usuario manda.

Alto

Llaves y contraseñas a la vista

Llaves de cobro, llaves privadas, contraseñas dentro del código. Y ojo: si ya subiste eso a un repositorio, borrarlo no lo borra.

Alto

Datos personales en los registros

Teléfonos, códigos de verificación y secretos en texto plano, donde los ve cualquiera con acceso a los logs.

Nuevo

Prompt injection

Texto del usuario pegado directo en el prompt de tu agente. Puede escribir “ignora tus instrucciones” y tomar el control. Casi nadie lo revisa.

Antes de que preguntes

Por qué lo puedes correr sin miedo

Cómo se usa

Tres pasos

  1. Descomprime la carpeta

    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.

  2. Arrastra la carpeta de tu proyecto sobre el lanzador

    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"
  3. Lee lo que salió

    Cada hallazgo trae el archivo, el número de línea, la línea exacta y qué hacer. Empieza por los críticos.

Y ya que los tienes, ¿cómo los arreglas?

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.

¿Y si te grita en falso?

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.

Quién lo hizo

No soy experto en seguridad

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.

No te va a decir que tu app es segura. Te va a decir si caíste en los errores que ya conocemos.

Y esa diferencia importa: si sale limpio, no cantes victoria. Significa que no pisaste estas quince minas. Hay más.

Lo que sigue

Esto es la Capa 1. De 13.

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.

Pasar el Guardián no significa que tu app es segura. Significa que pasaste la primera de trece.
Quiero las 12 que faltan
te contesta Nova al momento y de ahí lo vemos tú y yo

Córrelo sobre lo que ya construiste

Tarda menos de lo que tardaste leyendo esta página.
Y si sale limpio, te acabas de ahorrar la duda.

Descargar el Guardián Avísame qué te salió
si te salieron hallazgos y no sabes por dónde empezar, escríbeme