SlopGradeby Maxor Global LLC
Se connecterDémarrer
Gate injection · CWE-89

Attrapez l'injection SQL avant qu'elle n'atteigne main.

Le SQL concaténé est la brèche la plus ancienne du métier — et l'IA l'écrit plus vite que quiconque ne peut la relire. SlopGrade lit chaque PR sur votre propre runner et bloque la requête qui construit du SQL à partir de l'entrée utilisateur, avant le merge.

CWE-89
Catalogue des gates
0
file content leaves CI
0
false positives · 5,000+ repos
JS/TS · Python · Go · .NET
Langages
Le bug

L'entrée utilisateur, concaténée dans une requête.

L'id de la requête est collé dans la chaîne SQL. Un id forgé comme 1 OR 1=1 vide la table ; une sous-requête exfiltre une autre table. Les requêtes paramétrées corrigent ça — le gate garantit que la version non paramétrée ne merge jamais.

Ce que l'IA a livré

api/users.ts — entrée utilisateur dans la chaîne SQL
db.query('SELECT * FROM users WHERE id = ' + req.params.id)

Ce qui quitte votre runner

CWE-89
{ "file": "api/users.ts", "line": 12, "kind": "sql-injection" }

Chemin, ligne, classe. Le contenu du fichier ne sort jamais. Auditez-le avec --print-payload.

Comment le gate l'attrape

Détecte → adapte → vérifie. Rien d'autre ne sort.

01 · DÉTECTE

Dans votre runner, sur le diff

Le client open source parcourt la pull request et signale le motif en local — dataflow intra-fonction, aucun code ne quitte la machine.

02 · ADAPTE

Verdict serveur + gate

L'empreinte structurelle est classée côté serveur. Un hit dur bloque le check sur un repo privé payant ; les repos publics sont gatés gratuitement ; le paywall échoue en mode ouvert.

03 · VÉRIFIE

Posté inline, correctif vérifié en local

Le constat est posté sur sa ligne exacte. Quand un correctif existe, il est généré ET vérifié dans votre runner — proposé seulement une fois qu'un re-scan prouve la disparition.

Les questions des équipes

Qu'est-ce qui compte comme injection SQL ici ?

Toute requête construite en concaténant ou interpolant une entrée non fiable dans la chaîne SQL, en JS/TS, Python, Go ou .NET — à travers les drivers courants et les échappatoires raw-query des ORM. Les requêtes paramétrées/préparées passent.

Va-t-il signaler les requêtes paramétrées sûres ?

Non — calibré à 0 faux positif sur 5 000+ repos réels. Les placeholders ($1, ?, :name) et les query builders qui paramètrent sont reconnus comme sûrs. Démarrez en advisory pour vérifier, puis passez en bloquant.