Aller au contenu principal

Menu de commandes

Accédez à une page ou recherchez dans le catalogue

Outils et scripts IA

Vérification de sécurité pour Drizzle ORM

Vérifiez vos projets Drizzle ORM avant le déploiement : sql.raw() construit à partir des requêtes, mots de passe de base de données dans drizzle.config ou dans le code, drizzle-kit push --force dans les scripts de déploiement, delete sans where, colonnes monétaires en float et clés étrangères sans index.

$5.00

Ce que vous recevez : 1 fichier · 58.64 KB · ZIP

Voir les options d'achat

Description du produit

db.execute(sql.raw(`SELECT * FROM orders ORDER BY ${req.query.sort}`)) envoie le texte de la requête elle-même à la base de données sous forme de SQL, et un script de démarrage qui exécute drizzle-kit push --force accepte sans rien demander chaque instruction entraînant une perte de données sur la base de production. Cette skill détecte ces erreurs et les autres erreurs Drizzle ci-dessous avant le déploiement, et vous indique comment corriger chacune d'elles.

Votre agent exécute un scanner sur vos fichiers drizzle.config, vos fichiers de schéma (pgTable, sqliteTable, mysqlTable, y compris via pgTableCreator, pgSchema ou un alias), votre code de requêtes TypeScript et JavaScript et les scripts de package.json. Il ignore les commentaires et les fichiers de test, suit les données de requête provenant d'Express, Fastify, Koa, Hono, Next.js (route handlers, cookies, server actions), tRPC, Nuxt et SvelteKit à travers les variables locales et les paramètres de fonctions, considère le template balisé sql et le query builder comme paramétrés, accepte les valeurs choisies parmi des options fixes ou limitées à celles-ci par une vérification qui rejette tout le reste, et laisse de côté les identifiants de développement local, les hôtes d'exemple et les espaces réservés de la documentation de Drizzle elle-même. Il n'exécute jamais votre code et ne se connecte jamais à une base de données. Il renvoie BLOCK, REVIEW ou NOT FLAGGED, avec le fichier, la ligne, la raison et une approche plus sûre. Les secrets ne sont jamais affichés.

Ce qui est vérifié

BLOCK (à corriger avant la mise en production)

  • D01 : données de requête (y compris l'input tRPC, les arguments de server actions et les cookies) dans sql.raw(), y compris à l'intérieur d'un template sql ou via JSON.stringify(), ou dans une simple chaîne SQL passée à db.execute(), db.run(), db.all(), db.get() ou db.values()
  • D02 : mots de passe et jetons de base de données écrits dans une URL de connexion, dans dbCredentials, dans l'objet de connexion de drizzle() ou d'un driver, dans une valeur de repli ?? ou ||, ou dans un script package.json (une URL, --password, --auth-token, PGPASSWORD=)
  • D03 : drizzle-kit push --force exécuté par un script start, build, deploy, release ou install, directement ou via un autre script npm

REVIEW (à vérifier avant la publication)

  • D11 : sql.raw() ou une simple chaîne SQL construite à partir d'un paramètre, de données stockées ou du résultat d'une autre fonction
  • D12 : sql.identifier() avec un nom de table ou de colonne issu d'une entrée
  • D13 : drizzle-kit push (sans --force ni --explain) exécuté par un script start, build, deploy, release ou install
  • D14 : colonnes monétaires (price, amount, balance, total...) stockées en real, double ou float
  • D15 : colonnes de mot de passe dont le nom n'indique pas qu'elles contiennent un hachage (les tables de comptes Better Auth ne sont pas concernées)
  • D16 : clés étrangères sans index sur la colonne de référence dans les tables PostgreSQL, SQLite et SQL Server
  • D17 : db.delete(table) ou db.update(table).set() sans where(), en dehors des scripts de seed et de réinitialisation
  • D18 : drizzle-kit studio lancé avec --host 0.0.0.0
  • D19 : vérifications des certificats de la base de données désactivées (rejectUnauthorized: false, trustServerCertificate: true, sslmode=no-verify, NODE_TLS_REJECT_UNAUTHORIZED=0, ssl: 'require' de postgres.js)

Ce qui est inclus

  • Le scanner (Python 3.9+, bibliothèque standard uniquement)
  • Un guide des règles avec la raison, une approche plus sûre et la source officielle pour chaque règle
  • Un projet d'exemple risqué et un projet sûr (drizzle.config.ts, schéma, routes Express, package.json), ainsi que le rapport réel produit par le scanner sur le projet risqué

Limites

Il lit chaque fichier séparément et ne suit les données de requête qu'à travers les variables de ce fichier : les valeurs transmises par des fonctions utilitaires d'autres fichiers sont signalées comme D11 et non D01, et les portées sont déduites des accolades et des déclarations plutôt que par un analyseur complet. Les fichiers de migration SQL, les fichiers .env, les Dockerfiles, les workflows de CI et les fichiers .svelte, .vue ou .astro ne sont pas lus, et il ne vérifie ni votre version de Drizzle, ni les droits de la base de données, ni les politiques de sécurité au niveau des lignes. NOT FLAGGED n'est pas une garantie.

Contenu

Un fichier ZIP de 22 fichiers : SKILL.md, le scanner dans scripts/ (9 fichiers Python), references/rules.md (chaque règle avec sa raison et une approche plus sûre) et examples/ (10 fichiers d'exemple plus report.md, la sortie réelle du scanner sur l'exemple risqué).

Mode d'emploi : Il s'agit d'une skill pour agent : un dossier contenant un fichier SKILL.md et des scripts Python qu'un agent de codage IA comme Claude Code, Cursor ou Codex CLI peut exécuter. Décompressez-la dans le dossier des skills de votre agent (pour Claude Code : ~/.claude/skills/), puis demandez à votre agent de vérifier votre projet. Les scripts fonctionnent aussi seuls avec Python 3.9 ou une version plus récente, sans rien à installer. Ils se contentent de lire vos fichiers : aucun accès réseau, et rien n'est envoyé nulle part.

Ce que vous recevez

1 fichier · 58.64 KB

  • drizzle-orm-safety-check-1.0.0.zipZIP · 58.64 KB
LicenceUsage commercial autorisé
Vérification du paquetRéussie

Getly a ouvert les fichiers envoyés et n'a rien trouvé qui empêche leur ouverture. Ce n'est ni une analyse antivirus ni une note de qualité.

Publié12 nov. 2026
Taille du fichier58.64 KB
Format du fichierZIP
Versionv1.0

Tags

drizzleormsql-injectiondatabasetypescriptai agent skill
R
RR HH

Questions fréquentes

Ai-je accès au produit immédiatement ?

Oui. C'est un produit numérique : vous pouvez le télécharger juste après le paiement, directement depuis votre bibliothèque.

Puis-je l'utiliser pour des projets commerciaux ?

Oui. L'usage commercial est autorisé : utilisez-le dans votre propre activité et dans ce que vous vendez. Vous ne pouvez pas revendre ni redistribuer le fichier lui-même.

Quelle est votre politique de remboursement ?

Vous pouvez demander un remboursement dans un délai de 30 jours. Si quelque chose ne va pas, demandez-le depuis votre commande et l'équipe Getly l'examine.

Quels formats et quelles tailles de fichier vais-je recevoir ?

Vous téléchargerez 1 fichier - ZIP - 58.64 KB au total.

Ai-je droit aux mises à jour gratuites ?

Oui : quand le vendeur publie une nouvelle version, vous pouvez retélécharger les derniers fichiers depuis votre bibliothèque sans frais. Consultez le journal des modifications pour les dernières mises à jour.

Prix

$5.00