Saltar al contenido principal

Menú de comandos

Ve a una página o busca en el catálogo

Herramientas y scripts de IA

Revisión de seguridad de APIs Hono

Revisa tus API de Hono antes de desplegar: CORS que refleja cualquier origen con credenciales, secretos de autenticación en el código o en las vars de Wrangler, datos de la petición en raw() o c.html(), SQL construido a partir de peticiones, redirecciones abiertas, falta de csrf() y más.

$5.00

Qué recibes: 1 archivo · 47.45 KB · ZIP

Ver opciones de compra

Descripción del producto

cors({ origin: (origin) => origin, credentials: true }) permite que cualquier sitio web llame a tu API con las cookies de tus usuarios y lea las respuestas, y c.html() con una cadena de plantilla normal envía ${c.req.query('q')} al navegador sin escapar, porque solo la etiqueta html escapa el contenido. Esta skill detecta esos y los demás errores de Hono que se indican a continuación antes de que despliegues, y te explica cómo corregir cada uno.

Tu agente ejecuta un escáner sobre tu código Hono (TypeScript y JavaScript en Cloudflare Workers, Bun, Deno o Node, incluidas las importaciones jsr:@hono/hono) y tu wrangler.toml o wrangler.json. Omite los comentarios y los archivos de pruebas, sigue los datos de la petición (params, query, cabeceras, cookies, cuerpo y entrada validada) a través de variables locales, considera seguros la etiqueta html, JSX, D1 .bind() y las plantillas SQL etiquetadas, sabe que los bindings de c.env y env(c) no son secretos literales, y tiene en cuenta secureHeaders(), csrf() y bodyLimit() registrados en cualquier parte del proyecto. Nunca ejecuta tu aplicación. Devuelve BLOCK, REVIEW o NOT FLAGGED, con el archivo, la línea, el motivo y una alternativa más segura. Los secretos nunca se muestran.

Qué comprueba

BLOCK (corrígelo antes de publicar)

  • H01: cors() con credenciales y una función origin que devuelve cualquier origen de la petición, o una cabecera Access-Control-Allow-Origin copiada de la petición
  • H02: secretos de autenticación JWT, Basic y Bearer o secretos de cookies firmadas escritos en el código, como valor de respaldo o en las vars de Wrangler (las claves públicas y ajustes como la duración de los tokens no se marcan)
  • H03: datos de la petición en raw(), en c.html() con una cadena de plantilla normal o una función del mismo archivo que la construye, o en dangerouslySetInnerHTML
  • H04: SQL para D1, pg, Prisma o Drizzle construido a partir de datos de la petición con un template literal o + (las listas de marcadores de posición y los valores elegidos entre opciones fijas son correctos)

REVIEW (revísalo antes del lanzamiento)

  • H11: credenciales CORS con origen '*', comprobaciones de origen con startsWith, includes, endsWith sin punto o expresiones regulares sin anclar, y csrf() que permite peticiones entre sitios
  • H12: c.redirect() a una URL de la petición sin comprobar el origen ni una lista de permitidos (una comprobación startsWith('/') por sí sola sigue dejando pasar /\evil.com)
  • H13: aplicaciones que sirven HTML sin secureHeaders()
  • H14: rutas de subida de archivos sin bodyLimit()
  • H15: onError que devuelve mensajes de error o trazas de pila
  • H16: rutas POST con autenticación por cookies sin csrf() ni cookies de sesión SameSite
  • H17: middleware de autenticación registrado después de las rutas que debe proteger
  • H18: cookies de sesión sin httpOnly o secure
  • H19: c.html() alimentado por una función de vista llamada con datos de la petición cuyo interior el escáner no puede ver

Qué incluye

  • El escáner (Python 3.9+, solo biblioteca estándar)
  • Una guía de reglas con el motivo, la alternativa más segura y la fuente oficial de cada regla
  • Un proyecto Workers de ejemplo arriesgado y otro seguro (rutas Hono, D1, R2 y wrangler.toml), y el informe real que genera el escáner sobre el arriesgado

Limitaciones

Lee cada archivo por separado y sigue los datos de la petición solo a través de variables de ese archivo: no se siguen los valores pasados a funciones auxiliares de otros archivos ni las definiciones de rutas encadenadas, y secureHeaders(), csrf() y bodyLimit() cuentan para todo el proyecto sin comprobar sus rutas. No compara tu versión de Hono con los avisos de seguridad ni revisa los ajustes del panel de Cloudflare o los secretos definidos con wrangler secret put. NOT FLAGGED no es una garantía.

Contenido

Un archivo ZIP con 17 archivos: SKILL.md, el escáner en scripts/ (5 archivos de Python), references/rules.md (cada regla con su motivo y su alternativa más segura) y examples/ (9 archivos de ejemplo más report.md, la salida real del escáner sobre el ejemplo arriesgado).

Cómo usarlo: Esta es una skill para agentes: una carpeta con un archivo SKILL.md y scripts de Python que puede ejecutar un agente de programación con IA como Claude Code, Cursor o Codex CLI. Descomprímela en la carpeta de skills de tu agente (para Claude Code: ~/.claude/skills/) y luego pide a tu agente que revise tu proyecto. Los scripts también funcionan por sí solos con Python 3.9 o posterior, sin instalar nada. Solo leen tus archivos: sin acceso a la red y sin enviar nada a ningún sitio.

Qué recibes

1 archivo · 47.45 KB

  • hono-api-safety-check-1.0.0.zipZIP · 47.45 KB
LicenciaUso comercial permitido
Revisión del paqueteSuperada

Getly abrió los archivos subidos y no encontró nada que impida abrirlos. No es un análisis antivirus ni una valoración de calidad.

Publicado12 nov 2026
Tamaño del archivo47.45 KB
Formato de archivoZIP
Versiónv1.0

Etiquetas

honocloudflare-workersapisecuritytypescriptai agent skill
R
RR HH

Preguntas frecuentes

¿Tengo acceso al instante?

Sí. Es un producto digital: puedes descargarlo justo después del pago, directamente desde tu biblioteca.

¿Puedo usarlo en proyectos comerciales?

Sí. Se permite el uso comercial: úsalo en tu propio negocio y en cosas que vendas. No puedes revender ni redistribuir el archivo en sí.

¿Cuál es vuestra política de reembolso?

Puedes pedir un reembolso dentro de 30 días. Si algo no va bien, solicítalo desde tu pedido y el equipo de Getly lo revisa.

¿Qué formatos y tamaños de archivo recibiré?

Descargarás 1 archivo - ZIP - 47.45 KB en total.

¿Recibo actualizaciones gratis?

Sí: cuando el vendedor publica una versión nueva, puedes volver a descargar los archivos más recientes desde tu biblioteca sin coste extra. Mira el registro de cambios para ver las últimas actualizaciones.

Precio

$5.00