Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
roninforge-hono — Cursor plugin for Hono v4 (TypeScript edge web framework). 59 LLM regressions with BAD/CORRECT pairs. Pinned to hono ^4.12.19 (>= 4.9.7 for CVE-2025-59139). Covers Express middleware leakage, v3-era removed APIs, RPC inference traps, Cloudflare Workers gotchas, security defaults, JSX SSR hardening. | Kitploit
Strumenti/GitHubGitHub/roninforge/roninforge-hono
Static Code Analysis (SAST)Vulnerability AnalysisCode AnalysisServerless SecurityWeb SecurityCloud SecuritySecret DetectionMisconfigurationLearning & Education

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
API Security
Learning Paths & Courses
GitHubroninforge/roninforge-hono

roninforge-hono

Vedi RepositorySito web
2 mesi faNon ancora revisionato

Informazioni

Cursor plugin for Hono v4 (TypeScript edge web framework). 59 LLM regressions with BAD/CORRECT pairs. Pinned to hono ^4.12.19 (>= 4.9.7 for CVE-2025-59139). Covers Express middleware leakage, v3-era removed APIs, RPC inference traps, Cloudflare Workers gotchas, security defaults, JSX SSR hardening.

Condividi

roninforge-hono

License: MIT

Plugin per Cursor per Hono v4 (framework web TypeScript edge) + TypeScript. Bloccato su hono ^4.12.19, @hono/zod-validator ^0.8.0, @hono/zod-openapi ^1.4.0 (peer zod ^4.x), @hono/node-server ^2.0.3 (Node 20+). Insegna le API v4 che gli LLM addestrati su dati pre-2024 non conoscono (c.json() sempre tipizzato, il validatore lancia HTTPException, getCookie/setCookie da hono/cookie, c.env come proprietà, streamText da hono/streaming, showRoutes da hono/dev, getRuntimeKey da hono/adapter, fire(app) da hono/service-worker, associazione Static Assets di Workers invece della deprecata serveStatic, JSR @hono/hono per Deno). Individua oltre 50 regressioni degli LLM con coppie ERRATO / CORRETTO in TypeScript.

Non esiste Hono v5. L'ultima stabile è v4.12.19. Qualsiasi "v5" nel codice generato è un'allucinazione.

Il problema

Gli stessi manutentori di Hono hanno aperto Issue #3906 ("file llm.txt") e Issue #4812 ("Abilità ufficiale AI Agent per Hono") proprio perché "gli LLM non hanno praticamente conoscenza di come funziona l'ultimo Hono." I dati di addestramento pre-2025 sono dell'era v3. Gli LLM emettono:

API rimosse da v3 a v4

  • c.jsonT() invece di c.json() (sempre tipizzato dalla v4.0.0)
  • c.stream() / c.streamText() come metodi di Context (spostati in hono/streaming nella v4)
  • c.env() forma funzionale (ora proprietà; rilevamento runtime tramite getRuntimeKey() da hono/adapter)
  • c.req.cookie() (rimosso; usa getCookie(c) da hono/cookie)
  • app.showRoutes(), app.routerName (spostati in hono/dev)

Perdite da Express / Koa / Fastify (la classe più grande)

  • return mancante su c.json() (risolve a undefined; v4 lancia "Context is not finalized")
  • res.json() / res.send() invece di c.json() (non esiste res in Hono)
  • Firma middleware (req, res, next) (usa (c, next))
  • Middleware errori (err, req, res, next) (usa app.onError + HTTPException)
  • app.use(express.json()) parser body (Hono analizza su richiesta tramite c.req.json())

Errori di inferenza TypeScript / RPC

  • new Hono() senza generici Bindings / Variables (c.env è {})
  • Route definite come istruzioni (app.get(...) poi app.post(...)) - perde tipi RPC
  • Chiamate app.route() per sotto-app come istruzioni - stessa regola
  • Controller stile Rails che passano Context (perde inferenza dei parametri di percorso, secondo le Best Practices di Hono)
  • app.use('/path', zValidator(...)) invece che come argomento di route (errore TS: 'json' non assegnabile a 'never')
  • c.notFound() in route consumate da RPC (non può essere tipizzato sul client)

Insidie di Cloudflare Workers

  • process.env.X nel codice Workers (undefined; usa c.env.X con Bindings tipizzate)
  • Import fs / path nei Workers (nessun filesystem)
  • Flag legacy compatibility_flags: ["node_compat"] (usa nodejs_compat)
  • serveStatic deprecato da hono/cloudflare-workers (dalla v4.3.0; usa asset binding)
  • c.executionCtx.waitUntil() mancante per fire-and-forget
  • Controllo truthy if (c.executionCtx) (getter lancia su Bun e Next.js App Router)
  • D1 .run() / / non await (insert annullato quando il worker termina)

Lacune di sicurezza / produzione

  • Nessun middleware secureHeaders()
  • Nessun csrf() su mutazioni autenticate da cookie
  • cors({ origin: '*', credentials: true }) (i browser lo scartano silenziosamente; AJAX fallisce)
  • bodyLimit() mancante su route POST / PUT e blocca hono >= 4.9.7 per CVE-2025-59139
  • Cookie senza httpOnly / secure / sameSite / path
  • sameSite: 'None' senza secure: true (scartato silenziosamente)
  • Middleware di logging del body senza redazione (perdita di password / token / PII)
  • Nessun etag() / su GET statici

Bug di routing / strutturali

  • Gestore notFound di sotto-app (codice morto; solo il livello principale si attiva)
  • Incoerenza slash finale (/users vs /users/ sono route diverse per default)
  • await next() più di una volta (raddoppia il lavoro a valle)
  • app.use(prefix, mw) + app.route(prefix, subApp) sovrapposizione (il middleware si attiva due volte)
  • app.basePath('/api') come istruzione (il prefisso viene scartato dal tipo)

Runtime silenziosamente errato

  • serve(app) su @hono/node-server (usa serve({ fetch: app.fetch }))
  • export default app su Workers (usa export default { fetch: app.fetch })
  • Bun.serve({ fetch: app }) (usa app.fetch)

Problemi reali minori

  • c.req.query() senza argomento quando si aspetta un singolo valore
  • c.req.param('id') in middleware globale (undefined dove :id non è nel percorso)
  • OpenAPI scritto a mano senza @hono/zod-openapi
  • cors() montato DOPO le route (non corrisponde mai)

Perché questo plugin (rispetto alle regole Hono della community esistenti)

Alcune regole Hono esistono già su cursor.directory e in awesome-cursorrules (PR #152): coprono c.json() returns, zValidator + Zod, c.env per Workers, route concatenate per RPC, e app.fetch Workers export. Hanno tre problemi strutturali che questo plugin risolve:

  1. Non coprono le API rimosse da v3 a v4. Gli LLM continuano ad emettere c.jsonT, c.stream, c.env(), c.req.cookie, app.showRoutes, il barrel hono/middleware, e app.handleEvent - tutti rimossi nella v4.0.0 (febbraio 2024). Le regole esistenti li permettono silenziosamente.
  2. Omettono la classe di perdita Express. (req, res, next), (err, req, res, next), npm cors, app.use(express.json()), supertest, return mancante su c.json - tutto accade costantemente nel codice Hono generato dagli LLM. Le regole esistenti li trattano come casi isolati.

Questo plugin include:

  • 10 regole MDC con globs appropriati in modo che i controlli su route / RPC si attivino su src/routes/**, quelli Workers su wrangler.{toml,jsonc} + entry Workers, quelli di sicurezza su file middleware, ecc.
  • 59 anti-pattern documentati con coppie ERRATO / CORRETTO in TypeScript
  • 5 skill: /hono-new-route, /hono-rpc-setup, /hono-cloudflare-workers-setup, /hono-migrate-to-v4, /hono-validate
  • 1 agente revisore con raggruppamento per gravità (CRITICO / ERRORE / AVVISO / NIT) e controlli per file
  • 2 progetti fixture: correct-sample (gold standard Hono 4.12.19 + Workers + D1 + Drizzle + Zod) e anti-pattern-sample (retaggio Hono v3 con oltre 25 violazioni tracciate)

Installazione

Copia le regole, le skill e l'agente nella configurazione Cursor del tuo progetto. Prima esegui un backup dei file esistenti; cp -r sovrascriverà le regole con lo stesso nome.

root@kitploit:~
git clone https://github.com/RoninForge/roninforge-hono.git

# Usa -n per evitare di sovrascrivere una regola personalizzata esistente con lo stesso nome.
cp -rn roninforge-hono/rules/*  your-project/.cursor/rules/
cp -rn roninforge-hono/skills/* your-project/.cursor/skills/
cp -rn roninforge-hono/agents/* your-project/.cursor/agents/

Oppure vendi l'intero repository come sottomodulo git sotto your-project/.cursor/plugins/. Consulta la documentazione dei plugin Cursor per il percorso di installazione globale corrente sulla tua versione di Cursor.

Cosa è incluso

Regole (10 file)

Skill (5 comandi)

Agente (1 subagente)

Fixture

tests/fixtures/correct-sample/ è un progetto Hono 4.12.19 + Cloudflare Workers + D1 + Drizzle + Zod snello che dimostra la forma gold standard: route concatenate, RPC tipizzato, zValidator come argomento route, risposte tipizzate c.json({ ... } as const, status), stack secureHeaders + cors + csrf + bodyLimit, app.onError + app.notFound a livello principale, export default { fetch: app.fetch } satisfies ExportedHandler<Env>.

tests/fixtures/anti-pattern-sample/ è l'inverso. Ogni file viola un anti-pattern numerato. package.json blocca hono ^3.12.0 + cors ^2.8.5 + supertest ^6.3.0 + @hono/sentry ^1.0.0 + lucia ^3.2.0 apposta - l'era v3 è la base dei dati di addestramento LLM per la maggior parte dei modelli pre-2025, oltre a companion deprecati che gli LLM raccomandano ancora. Le violazioni tracciate includono: return mancante su c.json (#1), forma handler Express (req, res) (#2), middleware (req, res, next) (#3), (err, req, res, next) (#4), npm cors (#6), supertest (#12), c.jsonT (#13), addEventListener('fetch') + app.handleEvent (#15), (#16), chiamata funzionale (#17), barrel (#20), (#23), nessun Bindings/Variables (#24), in route RPC (#29), in Workers (#34), flag (#36), da (#37), D1 non await (#40), cors + credentials (#43), cookie senza (#45), senza (#46), segreto JWT hard-coded (#48), sotto-app (#50), come istruzione (#53), su Workers (#55), riferimenti deprecati + .

Versionamento

Le regole targettano hono ^4.12.19 con Node 20+ (quando su Node), Bun latest, Deno latest, Wrangler ^4.0.0. La maggior parte dei pattern funziona fino a Hono 4.0.0 (febbraio 2024) con le differenze indicate inline. Pin floor:

  • hono >= 4.9.7 obbligatorio - fix bypass bodyLimit CVE-2025-59139 / GHSA-92vj-g62v-jqhh
  • hono >= 4.12.18 obbligatorio se si utilizza JSX SSR - rafforzamento di nomi tag, nomi attributo, iniezione CSS
  • @hono/node-server >= 2.0.0 richiede Node 20+
  • @hono/zod-openapi >= 1.0.0 richiede zod ^4.0.0 (il peer è SOLO ^4.0.0, non ^3.x)
  • compatibility_date >= "2024-09-23" richiesto affinché nodejs_compat implichi nodejs_compat_v2

Dove la regola cita una versione (c.json() sempre tipizzato dalla v4.0.0, c.text() tipizzato dalla v4.3.0, JSR per Deno dalla v4.4.0, secureHeaders Permissions-Policy dalla v4.6.0, validatore Standard Schema dalla v4.7.0, fire(app) dalla v4.8.0, JSR parseResponse dalla v4.9.0, URL base tipizzato su hc dalla v4.11.0, metodo $path() dalla v4.12.0), verifica rispetto al changelog della versione che hai installato prima di adottare.

Licenza

MIT - vedi LICENSE

Collegamenti

  • Documentazione ufficiale Hono
  • GitHub Hono
  • Guida alla migrazione Hono (v3 -> v4)
  • Best Practices Hono
  • RPC Hono
  • Guida framework Cloudflare Workers per Hono
  • Documentazione plugin Cursor
  • RoninForge

Altro da RoninForge

RoninForge costruisce strumenti gratuiti per sviluppatori che lavorano con assistenti di codifica AI:

  • Confronto prezzi API LLM - prezzi token di Claude, GPT, Gemini, DeepSeek, Mistral e Grok affiancati, verificati rispetto alle pagine ufficiali dei prezzi
  • Calcolatore crediti AI GitHub Copilot - stima il tuo consumo mensile di crediti con fatturazione basata sull'uso
  • Tutti i plugin Cursor
Scarica lo strumento
  • addEventListener('fetch') + app.handleEvent() (sintassi Service Worker; usa export default { fetch: app.fetch })
  • app.head(...) (HEAD derivato automaticamente da GET nella v4)
  • hono/nextjs import (usa hono/vercel)
  • hono/middleware barrel import (usa sotto-percorso per middleware)
  • c.req.headers() / c.req.body() / c.req.signal() metodi accessor (usa c.req.raw.*)
  • FC con figli impliciti (usa PropsWithChildren<P>)
  • app.fire() (deprecato dalla v4.8.0; usa fire(app) da hono/service-worker)
  • import { Hono } from 'https://deno.land/x/hono/mod.ts' su Deno (obsoleto dalla v4.4.0; usa jsr:@hono/hono)
  • import cors from 'cors' da npm (usa hono/cors)
  • supertest per test (usa app.request() / testClient(app))
  • c.req.body già parsato (è un ReadableStream)
  • c.req.parseBody() per JSON (solo form / multipart)
  • c.req.text() poi c.req.json() (body consumato due volte)
  • c.userId = ... assegnazione inline (usa c.set('userId', ...) con Variables tipizzate)
  • new Response(JSON.stringify(...)) in route RPC (il client vede unknown)
  • hc<AppType>('/') URL relativo (lancia su $url())
  • Importazione per valore dell'app server nel bundle client (trascina drizzle-orm, fs, dipendenze native - la trappola #1 del bundle RPC)
  • Middleware senza createMiddleware<Env> (i tipi di Variables non si propagano)
  • .first()
    .all()
  • Aggiornamento WebSocket senza Durable Object per inoltro (lo stato scompare)
  • cache()
  • Segreto JWT hard-coded come stringa (perde tramite bundle)
  • Costruzione di grande JSON in memoria invece di streamText (limite 128MB di Workers)
  • Mancano i default di sicurezza e il pin CVE. Nessuna impone secureHeaders() / csrf(); nessuna menziona bodyLimit CVE-2025-59139 (fix in v4.9.7); nessuna affronta le insidie del client RPC (URL relativo, perdita di import per valore, tipizzazione c.notFound).
  • RegolaAmbito (globs)Cosa fa
    hono-anti-patterns**/*.ts,**/*.js,**/*.tsx,**/*.jsx,wrangler.{toml,jsonc,json}59 regressioni LLM con coppie ERRATO / CORRETTO, organizzate A-H per categoria (perdita Express, API era v3, TypeScript / RPC, CF Workers, sicurezza, routing, runtime, problemi minori)
    hono-core**/*.ts,**/*.tsx,**/*.js,**/*.jsx (alwaysApply)Inizializzazione app con Bindings + Variables tipizzate, API Context, accessor richiesta, firma middleware, elenco middleware integrato, helper cookie, rilevamento runtime
    hono-routing-and-rpcsrc/**/*.ts,src/routes/**/*,src/api/**/*,src/server/**/*,src/client/**/*,routes/**/*Route concatenate, composizione sotto-app, immutabilità basePath, fix sovrapposizione doppia esecuzione, codice morto notFound sotto-app, configurazione hc<AppType>, regola import type, URL base tipizzato, metodo $path(), integrazione TanStack Query / SWR, factory.createHandlers, mitigazione RPC per 30+ route
    hono-validatorssrc/**/*.ts,routes/**/*.ts,api/**/*.ts,handlers/**/*.tsPosizionamento @hono/zod-validator, accessor c.req.valid(), validator-lancia-su-fallimento, @hono/zod-openapi (insidia peer zod ^4), @hono/standard-validator, @hono/valibot-validator, hono/validator integrato, albero decisionale
    hono-cloudflare-workerssrc/**/*.ts,worker/**/*.ts,workers/**/*.ts,wrangler.{toml,jsonc,json},**/cloudflare-env.d.ts,**/worker-configuration.d.tsForma canonica di wrangler.jsonc, regole flag compatibilità, wrangler types, Bindings tipizzate, c.env vs process.env, c.executionCtx.waitUntil + portabilità, associazione Static Assets, await D1, stack Drizzle + D1, insidia adattatore Hyperdrive + Prisma, Durable Objects per WebSocket, regola dominio personalizzato hono/cache, export ES Module Worker
    hono-securitysrc/**/*.ts,src/**/*.tsx,src/middleware/**/*.ts,src/auth/**/*.ts,src/index.ts,src/app.tssecureHeaders(), csrf(), lista consentita CORS, bodyLimit() + pin CVE-2025-59139 floor 4.9.7, default cookie, segreto JWT da c.env, logging senza perdite PII, etag() + cache(), restrizione IP, timeout, ID richiesta, decisione libreria auth (Lucia deprecato; Better Auth / Clerk consigliati), @sentry/hono invece di @hono/sentry
    hono-error-handlingsrc/**/*.ts,routes/**/*.ts,api/**/*.ts,middleware/**/*.ts,src/index.ts,src/app.tsLancio canonico HTTPException, gestore globale app.onError, solo app.notFound a livello principale, errori RPC tipizzati tramite unioni discriminate, validator lancia, Sentry tramite @sentry/hono, logging strutturato con redazione pino, convenzione forma risposta errore
    hono-jsx**/*.tsx,**/*.jsx,**/jsx-runtime.ts,src/components/**/*,src/views/**/*,src/islands/**/*,app/islands/**/*hono/jsx lato server, configurazione tsconfig, FC NON include children, middleware jsxRenderer per layout, hono/jsx/streaming con Suspense, componenti client hono/jsx/dom, isole HonoX, integrazione htmx, pin sicurezza SSR JSX floor 4.12.18
    hono-testing**/*.test.ts,**/*.test.tsx,**/*.spec.ts,**/*.spec.tsx,vitest.config.{ts,js},**/test/**/*.ts,**/tests/**/*.ts,**/__tests__/**/*.tsPattern universale app.request(), test RPC tipizzati con testClient(app), Vitest + @cloudflare/vitest-pool-workers per D1 runtime reale, fixture applyD1Migrations, Bun + bun:test, test snapshot, test middleware / validator / waitUntil, MAI supertest
    hono-deploymentwrangler.{toml,jsonc,json},deno.json,deno.jsonc,package.json,Dockerfile,fly.toml,vercel.json,netlify.toml,**/serverless.yml,**/template.yamlCloudflare Workers (wrangler.jsonc + flag compatibilità), Bun.serve, Deno + JSR, @hono/node-server v2 (Node 20+), AWS Lambda + Lambda@Edge, Vercel Edge, Netlify, pipeline build, pin floor, errori comuni di deploy
    SkillComandoCosa fa
    Nuova route/hono-new-routeScaffolding di una sotto-app concatenata con zValidator come argomento di route, accesso tipizzato c.req.valid(), c.json({ ... } as const, status) per risposte RPC tipizzate, generici Bindings + Variables, sotto-app esportata come typeof users, collegata al genitore con .route() concatenato. Rifiuta controller stile Rails, c.notFound() in route RPC, new Response() grezzo.
    Configurazione RPC/hono-rpc-setupScaffolding del client hc<AppType> con import type (la regola portante), URL base assoluto, modulo api condiviso tipizzato, integrazione TanStack Query / SWR tramite InferRequestType / InferResponseType, utility parseResponse, metodo $path(), mitigazioni rallentamento IDE per 30+ route.
    Configurazione Workers/hono-cloudflare-workers-setupScaffolding di un progetto Hono + Workers pulito con wrangler.jsonc (NON .toml), nodejs_compat, Bindings tipizzate generate da wrangler types, pattern middleware D1 + Drizzle, stack secureHeaders + cors + csrf + bodyLimit, configurazione Vitest per @cloudflare/vitest-pool-workers.
    Migra a v4/hono-migrate-to-v4Migrazione v3 -> v4 per fasi: aggiorna pin (floor CVE-2025-59139), sostituisci c.jsonT / c.stream / c.env() / c.req.cookie / app.showRoutes / app.handleEvent, elimina barrel hono/middleware, passa Deno a JSR, @hono/node-server v2 + Node 20+, registra app.onError per lanci validator.
    Valida/hono-validateEsegue validate-plugin.sh + tsc --noEmit + test + audit grep per anti-pattern sintattici che il type checker non rileva (c.jsonT, c.req.cookie, process.env, node_compat, serveStatic da hono/cloudflare-workers, segreto JWT hard-coded, sameSite:'None' senza secure, bodyLimit mancante, import per valore su client hc).
    AgenteCosa fa
    hono-reviewerRivede il codice Hono v4 + TypeScript per gravità. CRITICO: hono < 4.9.7 (CVE), riferimenti v5 (allucinazione), cors wildcard + credentials, sameSite:'None' senza secure, segreto JWT hard-coded, process.env in Workers, bodyLimit mancante, nessun csrf su cookie-auth, serveStatic deprecato, JSX SSR su < 4.12.18. ERRORE: return mancante su c.json, forme middleware Express, tutte le API rimosse dell'era v3, route / sotto-app non concatenate, controller Rails, posizionamento zValidator, c.notFound/risposta raw in RPC, URL relativo hc(), import per valore app server, D1 non await, forme export runtime. AVVISO: default cookie, secureHeaders, logging body senza redazione, app.onError, notFound sotto-app, controllo truthy c.executionCtx, nessun generico Bindings, cors dopo route, sovrapposizione middleware, istruzione basePath, slash finali, barrel hono/middleware, wrangler.toml su greenfield, Lucia, @hono/sentry. NIT: satisfies ExportedHandler<Env> mancante, OpenAPI scritto a mano, observability.enabled mancante.
    c.req.cookie
    c.env()
    hono/middleware
    app.head()
    c.notFound
    process.env
    node_compat
    serveStatic
    hono/cloudflare-workers
    *
    httpOnly/secure/sameSite/path
    sameSite:'None'
    secure:true
    notFound
    basePath
    export default app
    @hono/sentry
    lucia