Saltar al contenido principal

Menú de comandos

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

Herramientas y scripts de IA

Comprobación de seguridad de Drizzle ORM

Revisa proyectos con Drizzle ORM antes de desplegar: sql.raw() construido a partir de peticiones, contraseñas de la base de datos en drizzle.config o en el código, drizzle-kit push --force en scripts de despliegue, delete sin where, columnas de dinero de tipo float y claves foráneas sin índice.

$5.00

Qué recibes: 1 archivo · 58.64 KB · ZIP

Ver opciones de compra

Descripción del producto

db.execute(sql.raw(`SELECT * FROM orders ORDER BY ${req.query.sort}`)) envía el propio texto de la petición a la base de datos como SQL, y un script de arranque que ejecuta drizzle-kit push --force acepta sin preguntar todas las sentencias que provocan pérdida de datos en la base de datos de producción. Esta skill detecta esos errores y los demás errores de Drizzle que se indican abajo antes de desplegar, y te explica cómo corregir cada uno.

Tu agente ejecuta un escáner sobre tus archivos drizzle.config, archivos de esquema (pgTable, sqliteTable, mysqlTable, también mediante pgTableCreator, pgSchema o un alias), código de consultas en TypeScript y JavaScript y scripts de package.json. Omite comentarios y archivos de pruebas, sigue los datos de peticiones de Express, Fastify, Koa, Hono, Next.js (route handlers, cookies, server actions), tRPC, Nuxt y SvelteKit a través de variables locales y parámetros de funciones, trata la plantilla etiquetada sql y el query builder como parametrizados, acepta valores elegidos entre opciones fijas o limitados a ellas por una comprobación que rechaza todo lo demás, y no toca las credenciales de desarrollo local, los hosts de ejemplo ni los marcadores de posición de la propia documentación de Drizzle. Nunca ejecuta tu código ni se conecta a una base de datos. Devuelve BLOCK, REVIEW o NOT FLAGGED, con el archivo, la línea, el motivo y un enfoque más seguro. Los secretos nunca se muestran.

Qué comprueba

BLOCK (corregir antes de publicar)

  • D01: datos de la petición (incluidos el input de tRPC, los argumentos de server actions y las cookies) en sql.raw(), también dentro de una plantilla sql o mediante JSON.stringify(), o en una cadena SQL simple pasada a db.execute(), db.run(), db.all(), db.get() o db.values()
  • D02: contraseñas y tokens de la base de datos escritos en una URL de conexión, en dbCredentials, en el objeto de conexión de drizzle() o de un driver, en un valor alternativo con ?? o || o en un script de package.json (una URL, --password, --auth-token, PGPASSWORD=)
  • D03: drizzle-kit push --force ejecutado por un script start, build, deploy, release o install, directamente o a través de otro script de npm

REVIEW (revisar antes del lanzamiento)

  • D11: sql.raw() o una cadena SQL simple construida a partir de un parámetro, datos almacenados o el resultado de otra función
  • D12: sql.identifier() con un nombre de tabla o columna procedente de la entrada
  • D13: drizzle-kit push (sin --force ni --explain) ejecutado por un script start, build, deploy, release o install
  • D14: columnas de dinero (price, amount, balance, total...) almacenadas como real, double o float
  • D15: columnas de contraseña cuyo nombre no indica que guardan un hash (las tablas de cuentas de Better Auth no se tocan)
  • D16: claves foráneas sin índice en la columna que hace referencia, en tablas de PostgreSQL, SQLite y SQL Server
  • D17: db.delete(table) o db.update(table).set() sin where(), fuera de los scripts de seed y reset
  • D18: drizzle-kit studio iniciado con --host 0.0.0.0
  • D19: verificación de certificados de la base de datos desactivada (rejectUnauthorized: false, trustServerCertificate: true, sslmode=no-verify, NODE_TLS_REJECT_UNAUTHORIZED=0, ssl: 'require' de postgres.js)

Qué incluye

  • El escáner (Python 3.9+, solo biblioteca estándar)
  • Una guía de reglas con el motivo, un enfoque más seguro y la fuente oficial de cada regla
  • Un proyecto de ejemplo arriesgado y otro seguro (drizzle.config.ts, esquema, rutas de Express, package.json), 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: los valores que llegan desde helpers de otros archivos se informan como D11, no como D01, y los ámbitos se deducen de las llaves y las declaraciones en lugar de usar un parser completo. No se leen archivos de migración SQL, archivos .env, Dockerfiles, flujos de CI ni archivos .svelte, .vue o .astro, y no comprueba tu versión de Drizzle, los permisos de la base de datos ni las políticas de seguridad a nivel de fila. NOT FLAGGED no es una garantía.

Contenido

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

Cómo usarlo: Esto 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 necesidad de instalar nada. Solo leen tus archivos: sin acceso a la red y sin enviar nada a ningún sitio.

Qué recibes

1 archivo · 58.64 KB

  • drizzle-orm-safety-check-1.0.0.zipZIP · 58.64 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 archivo58.64 KB
Formato de archivoZIP
Versiónv1.0

Etiquetas

drizzleormsql-injectiondatabasetypescriptai 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 - 58.64 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