Zum Hauptinhalt springen

Befehlsmenü

Zu einer Seite springen oder den Katalog durchsuchen

KI-Tools & -Skripte

Sicherheitsprüfung für Drizzle ORM

Prüfen Sie Drizzle-ORM-Projekte vor dem Deployment: aus Anfragen gebautes sql.raw(), Datenbankpasswörter in drizzle.config oder im Code, drizzle-kit push --force in Deploy-Skripten, delete ohne where, Geldspalten als float und Fremdschlüssel ohne Index.

$5.00

Das bekommst du: 1 Datei · 58.64 KB · ZIP

Kaufoptionen ansehen

Produktbeschreibung

db.execute(sql.raw(`SELECT * FROM orders ORDER BY ${req.query.sort}`)) sendet den eigenen Text der Anfrage als SQL an die Datenbank, und ein Start-Skript, das drizzle-kit push --force ausführt, akzeptiert ohne Rückfrage jede Anweisung mit Datenverlust in der Produktionsdatenbank. Dieser Skill findet diese und die weiteren unten aufgeführten Drizzle-Fehler vor dem Deployment und erklärt Ihnen, wie Sie jeden einzelnen beheben.

Ihr Agent führt einen Scanner über Ihre drizzle.config-Dateien, Schemadateien (pgTable, sqliteTable, mysqlTable, auch über pgTableCreator, pgSchema oder einen Alias), Abfragecode in TypeScript und JavaScript sowie package.json-Skripte aus. Er überspringt Kommentare und Testdateien, verfolgt Anfragedaten aus Express, Fastify, Koa, Hono, Next.js (Route-Handler, Cookies, Server Actions), tRPC, Nuxt und SvelteKit über lokale Variablen und Funktionsparameter, behandelt das getaggte sql-Template und den Query Builder als parametrisiert, akzeptiert Werte, die aus festen Optionen gewählt oder durch eine Prüfung, die alles andere ablehnt, darauf beschränkt werden, und lässt lokale Entwicklungszugangsdaten, Beispiel-Hosts und die Platzhalter aus Drizzles eigener Dokumentation in Ruhe. Er führt niemals Ihren Code aus und verbindet sich nie mit einer Datenbank. Er gibt BLOCK, REVIEW oder NOT FLAGGED zurück, mit Datei, Zeile, Begründung und einem sichereren Vorgehen. Geheimnisse werden niemals ausgegeben.

Was geprüft wird

BLOCK (vor der Auslieferung beheben)

  • D01: Anfragedaten (einschließlich tRPC-Input, Argumenten von Server Actions und Cookies) in sql.raw(), auch innerhalb eines sql-Templates oder über JSON.stringify(), oder in einem einfachen SQL-String, der an db.execute(), db.run(), db.all(), db.get() oder db.values() übergeben wird
  • D02: Datenbankpasswörter und -Tokens, die direkt in einer Verbindungs-URL, in dbCredentials, im Verbindungsobjekt von drizzle() oder eines Treibers, in einem ??- oder ||-Fallback oder in einem package.json-Skript stehen (eine URL, --password, --auth-token, PGPASSWORD=)
  • D03: drizzle-kit push --force, ausgeführt von einem start-, build-, deploy-, release- oder install-Skript, direkt oder über ein anderes npm-Skript

REVIEW (vor dem Release prüfen)

  • D11: sql.raw() oder ein einfacher SQL-String, gebaut aus einem Parameter, gespeicherten Daten oder dem Ergebnis einer anderen Funktion
  • D12: sql.identifier() mit einem Tabellen- oder Spaltennamen aus Eingaben
  • D13: drizzle-kit push (ohne --force oder --explain), ausgeführt von einem start-, build-, deploy-, release- oder install-Skript
  • D14: Geldspalten (price, amount, balance, total...), gespeichert als real, double oder float
  • D15: Passwortspalten, deren Namen nicht erkennen lassen, dass sie einen Hash enthalten (Kontotabellen von Better Auth bleiben unberührt)
  • D16: Fremdschlüssel ohne Index auf der referenzierenden Spalte in Tabellen von PostgreSQL, SQLite und SQL Server
  • D17: db.delete(table) oder db.update(table).set() ohne where(), außerhalb von Seed- und Reset-Skripten
  • D18: drizzle-kit studio, gestartet mit --host 0.0.0.0
  • D19: deaktivierte Zertifikatsprüfungen der Datenbank (rejectUnauthorized: false, trustServerCertificate: true, sslmode=no-verify, NODE_TLS_REJECT_UNAUTHORIZED=0, postgres.js ssl: 'require')

Was enthalten ist

  • Der Scanner (Python 3.9+, nur Standardbibliothek)
  • Ein Regelleitfaden mit Begründung, sichererem Vorgehen und offizieller Quelle für jede Regel
  • Ein riskantes und ein sicheres Beispielprojekt (drizzle.config.ts, Schema, Express-Routen, package.json) sowie der echte Bericht, den der Scanner für das riskante Projekt erzeugt

Grenzen

Er liest jede Datei einzeln und verfolgt Anfragedaten nur über Variablen in dieser Datei: Werte, die von Hilfsfunktionen in anderen Dateien übergeben werden, werden als D11 statt D01 gemeldet, und Gültigkeitsbereiche werden anhand von Klammern und Deklarationen ermittelt, nicht mit einem vollständigen Parser. SQL-Migrationsdateien, .env-Dateien, Dockerfiles, CI-Workflows sowie .svelte-, .vue- oder .astro-Dateien werden nicht gelesen, und Ihre Drizzle-Version, Datenbankberechtigungen oder Row-Level-Security-Richtlinien werden nicht geprüft. NOT FLAGGED ist keine Garantie.

Inhalt

Eine ZIP-Datei mit 22 Dateien: SKILL.md, der Scanner in scripts/ (9 Python-Dateien), references/rules.md (jede Regel mit Begründung und sichererem Vorgehen) und examples/ (10 Beispieldateien plus report.md, die echte Ausgabe des Scanners für das riskante Beispiel).

So verwenden Sie es: Dies ist ein Agent-Skill: ein Ordner mit einer SKILL.md-Datei und Python-Skripten, die ein KI-Coding-Agent wie Claude Code, Cursor oder Codex CLI ausführen kann. Entpacken Sie ihn in den Skills-Ordner Ihres Agents (für Claude Code: ~/.claude/skills/) und bitten Sie Ihren Agent dann, Ihr Projekt zu prüfen. Die Skripte laufen auch eigenständig mit Python 3.9 oder neuer, ohne dass etwas installiert werden muss. Sie lesen nur Ihre Dateien: kein Netzwerkzugriff, und nichts wird irgendwohin gesendet.

Das bekommst du

1 Datei · 58.64 KB

  • drizzle-orm-safety-check-1.0.0.zipZIP · 58.64 KB
LizenzKommerzielle Nutzung erlaubt
PaketprüfungBestanden

Getly hat die hochgeladenen Dateien geöffnet und nichts gefunden, was das Öffnen verhindern würde. Das ist kein Virenscan und keine Qualitätsbewertung.

Veröffentlicht12. Nov. 2026
Dateigröße58.64 KB
DateiformatZIP
Versionv1.0

Tags

drizzleormsql-injectiondatabasetypescriptai agent skill
R
RR HH

Häufige Fragen

Erhalte ich sofort Zugriff?

Ja. Dies ist ein digitales Produkt - du kannst es direkt nach dem Kauf aus deiner Bibliothek herunterladen.

Darf ich es für kommerzielle Projekte nutzen?

Ja. Kommerzielle Nutzung ist erlaubt: im eigenen Business und in dem, was du verkaufst. Die Datei selbst darfst du nicht weiterverkaufen oder verbreiten.

Wie sind die Rückerstattungsbedingungen?

Du kannst innerhalb von 30 Tagen eine Rückerstattung anfordern. Stimmt etwas nicht, fordere sie bei deiner Bestellung an - das Getly-Team prüft sie.

Welche Dateiformate und -größen erhalte ich?

Du lädst 1 Datei herunter - ZIP - insgesamt 58.64 KB.

Erhalte ich kostenlose Updates?

Ja - wenn der Verkäufer eine neue Version veröffentlicht, kannst du die aktuellen Dateien kostenlos erneut aus deiner Bibliothek herunterladen. Aktuelle Änderungen findest du im Changelog.

Preis

$5.00