SlopGradeby Maxor Global LLC
Se connecterDémarrer l'essai gratuit de 14 jours
Gate CI · code écrit par l'IA

L'IA écrit votre code.
slopGrade décide : ça passe ou ça bloque.

Une GitHub Action qui bloque les PR ajoutant une fuite cross-tenant ou un XSS par echo/print PHP avant leur arrivée sur main. Les secrets et les autres injections sont signalés sans bloquer. Elle ne juge que ce que la PR ajoute : le code existant ne la fait jamais passer au rouge.

Team : 14 jours gratuits, sans carte. Les fuites cross-tenant et les XSS par echo/print PHP bloquent gratuitement sur les repos publics et 1 repo privé ; les autres détecteurs signalent sans bloquer. 3 classes bloquent sur les repos payants (125 détectées), avec Deep Scan sur chaque PR Team.
empreinte seulement sur repos privésOIDC sans cléinstallé en 2 min
PR #128acme/billing-apigate en direct
Poussé · le gate lit le diff
export async function listInvoices(orgId){- return db.from('invoices').select('*') }
!Bloquérequête sans filtre d'org · fuite cross-tenant
correctif poussé ↓
Re-poussé · le gate re-tourne
export async function listInvoices(orgId){+ return db.from('invoices').select('*').eq('org_id', orgId) }
✓Passefiltre org_id ajouté · prêt à merger
Fusion désactivée tant que le check slop est rouge
Lecture seule sur vos diffs Écrit un check, les constats inline et le SARIF Sur les repos privés, par défaut seule une empreinte structurelle est envoyée — `--print-payload` montre les octetsgate en direct
Aperçu du gate · repo GitHub public

Collez un repo public. Voyez ce que les détecteurs trouvent.

Les mêmes détecteurs gratuits que l'Action GitHub fait tourner sur chaque pull request — injection SQL et de commande, XSS, SSRF, path traversal, XXE, désérialisation dangereuse, crypto faible, CORS et fuites cross-tenant — sur n'importe quel repo GitHub public, en une seconde environ.

Essayez :

Code public seulement · rien n'est stocké · les secrets ne sont jamais signalés · détecteurs du tier gratuit (le Firewall payant exécute le catalogue complet).

01Le problème

Votre équipe merge du code qu'aucun humain n'a écrit.

Les agents IA ouvrent des PR plus vite que la revue ne suit. Le slop passe, les requêtes oublient le filtre d'org, une clé fuit dans un log. Au volume, la revue humaine n'attrape plus rien — il faut un gate déterministe, pas un avis.

02Comment ça marche

Une boucle : détecte → bloque → vérifie

Le gate vit dans votre CI GitHub Actions. Il lit le diff de chaque PR, décide, et écrit son verdict comme un check requis. Sur un repo privé, seule une empreinte quitte votre runner, sauf si vous activez le deep scan (heisen-slop) sur un repo payant. Sur un repo public, le deep scan tourne par défaut.

détectebloquevérifie
01 · installez

Copiez le snippet

Un workflow GitHub Actions collé dans votre repo. OIDC sans clé — rien à stocker.

- uses: maxor-tech/slopgrade-firewall@f18a953e15e84ff0f9e457da4a056ddea3548d46 # v0.13.6
02 · détecte

La PR ouvre

Le gate lit le diff côté runner et le vérifie contre les fuites cross-tenant et les classes de sécurité de votre plan.

$ node isolation-gate.mjs --print-payload
03 · bloque

Verdict passe / bloque

Un check requis, vrai ou faux. Rouge → la fusion est désactivée par le ruleset de branche.

slop · blocked → merge disabled
04 · vérifie

Le correctif repasse vert

L'agent corrige, re-pousse, le gate re-tourne. Vert → la PR redevient mergeable.

slop · pass → ready to merge
sans risqueCommencez en advisory sur tous vos repos — il signale les rouges sans rien bloquer. Regardez ce qu'il attrape sur vos vraies PR, puis passez en bloquant quand vous faites confiance au gate.
03Le firewall

125 classes détectées. 5 couches. Le blocage exige des preuves en aveugle.

La fuite cross-tenant — une requête sans filtre d'organisation — est notre classe phare. Une classe, ou une forme précise au sein de cette classe, ne bloque qu'après avoir atteint au moins 80 % de précision sur au moins 10 cas de blocage annotés en aveugle, avec des preuves publiques. D'ici là, elle signale sans bloquer. Vous activez les règles ; vous ne les écrivez pas.

Gratuit · open-source · pour toujours
Cross-tenant + XSS par echo/print PHP
Les fuites cross-tenant et les XSS par echo/print PHP bloquent sur tous les repos publics et 1 repo privé. Pour les XSS, seul un echo/print PHP affichant sans échappement des données de requête ($_GET / $_POST / $_REQUEST / $_COOKIE) bloque. Les 22 packs de détecteurs open source continuent d’analyser tous les repos ; les autres constats sont signalés sans bloquer. Auditez le client, créez votre fork.
SQLiInjection cmdXSSSSRFXXEDésérialisationPath traversalSecrets en durCrypto casséeCORS
Payant · détection et blocage
125 classes détectées
3 classes bloquent sur les repos payants : les fuites cross-tenant, les XSS par echo/print PHP affichant sans échappement des données de requête, et les comparaisons de HMAC ou de signature avec == si une requête peut atteindre la comparaison. Les autres formes de XSS (sinks DOM, XSS réfléchi dans Node, analyse de taint) et toutes les autres classes sont signalées sans bloquer.
Couverture du rulepackCross-tenant + XSS par echo/print PHP bloquent gratuitement · 3 classes bloquantes sur les repos payants
Cross-tenant + XSS par echo/print PHP — blocage gratuit125 classes détectées · 3 au bloquant, payant
Classes par catégoriecatalogue live
Injection6250%
Crypto2621%
Auth1512%
Infra1512%
Accès54%
Supply-chain22%
L1

Isolation tenant

Chaque requête org-scoped doit porter son filtre. La fuite cross-tenant #1 en prod, attrapée avant merge.

L2

Secrets et injections

Clés en dur, SQL/commande/XXE/SSRF, désérialisation — le gros du catalogue.

L3

Crypto et authentification

Algorithmes faibles, clés courtes, padding RSA, CORS reflété, contrôle d'accès manquant.

L4

Deep scan

Flux de données inter-fichiers (heisen-slop) sur 6 langages, par défaut sur les repos publics, sur activation sur les repos privés payants — informatif par défaut, bloquant seulement si vous le choisissez.

L5

Empreinte par défaut

Sur un repo privé, par défaut, seule une empreinte structurelle — chemins de fichiers, {file, line, kind} et les noms de tables et de colonnes dont le contrôle cross-tenant a besoin est envoyée — jamais le contenu des fichiers. Le deep scan (heisen-slop), actif par défaut sur les repos publics et opt-in sur les repos privés, envoie au plus 80 fichiers qui portent un sink, analysés en mémoire puis jetés. L'offre Entreprise peut faire tourner ce moteur sur votre réseau.

04Le catalogue

Chaque classe, avec le code qu'elle détecte.

Un échantillon des 125 classes — par catégorie, chacune avec le motif exact qu'elle attrape avant qu'il n'atteigne main. La détection tourne sur votre runner ; voici ce qu'elle cherche.

Accès5
Cross-tenant · access-control
✗ db.from('invoices').select('*')
Une requête sans filtre d'org — les lignes de chaque tenant fuient en prod.
RLS · SECURITY DEFINER
✗ create view billing as select * … security definer
Une vue definer qui contourne la sécurité au niveau ligne.
Mass-assignment
✗ User.create(req.body) // is_admin passes through
Le corps de requête lié direct au modèle — les champs de privilège passent.
Injection62
SQL injection
✗ db.query('select * from u where id = ' + req.params.id)
De l'entrée utilisateur concaténée dans une chaîne SQL.
Command / code
✗ exec('convert ' + req.query.file)
De l'entrée utilisateur qui atteint une commande shell.
SSRF
✗ fetch(req.query.url) // hits 169.254.169.254
Un fetch serveur vers une URL contrôlée par l'utilisateur — atteint l'endpoint métadonnées.
XXE
✗ libxml.parseXml(body, { noent: true })
Du XML parsé avec les entités externes activées.
Auth15
JWT alg-none / bypass
✗ jwt.verify(t, key, { algorithms: ['none'] })
Un token accepté avec l'algorithme « none » — falsifiable.
Hardcoded secrets
✗ const stripe = 'sk_live_4eC39Hq…'
Une clé live committée dans le code (et l'historique git à jamais).
CSRF disabled
✗ app.use(csrf({ ignoreMethods: ['POST'] }))
La protection CSRF désactivée sur une route mutante.
Crypto26
Weak crypto
✗ crypto.createHash('md5').update(password)
MD5 / SHA-1 là où il faut un hash de mot de passe.
TLS-verify off
✗ new https.Agent({ rejectUnauthorized: false })
La vérification du certificat désactivée sur un appel sortant.
Static / hardcoded IV
✗ createCipheriv('aes-256-cbc', key, ZERO_IV)
Un IV réutilisé / à zéro — le même clair chiffre à l'identique.
Supply-chain2
CI/CD mutable pins
✗ uses: some/action@main # not a SHA
Une action CI épinglée à une branche, pas un SHA — remplaçable en silence.
Mutable deps · slopsquat
✗ "lodahs": "*" // typo'd name, floating range
Une plage flottante sur un nom de package typo-squatté.
Infra15
IaC open-ingress
✗ cidr_blocks = ["0.0.0.0/0"] # port 22
Un security group ouvert à 0.0.0.0/0 sur SSH.
Docker unpinned
✗ FROM node:latest
Une image de base en :latest — non reproductible, elle dérive.
Debug mode in production
✗ DEBUG = True
Le mode debug laissé actif en production.

Voir les 125 classes →

05Vs les alternatives

Pas un scanner de plus. Un gate clé-en-main.

CodeQL et Semgrep sont des moteurs que vous configurez et ajustez. La revue humaine ne suit pas le rythme des PR d'agents. slopGrade propose des règles prêtes à activer — 125 classes détectées, dont 3 bloquent sur les repos payants après avoir franchi le seuil de preuve publique en aveugle. Toutes les autres signalent sans bloquer.

slopGrade
CodeQL
Semgrep
Revue humaine
Installation
Un snippet de workflow · OIDC sans clé · 2 min
Écrivez vos propres requêtes
Rédige et calibre les règles
Recrute et planifie des relecteurs
Fuite cross-tenant (#1)
Curée & calibrée — la classe phare
Écrivez et calibrez la requête
Rédige la règle
Invisible à l'œil
Faux positifs
Preuves publiques en aveugle avant tout blocage ; signalement seul d'abord. Replay historique avant ce seuil : 59 PR bloquées sur 52 089 PR open source ordinaires
À calibrer par repo
Dépend de vos règles
Fatigue au volume
Verdict
Passe / bloque — un check requis
Liste SARIF
Liste de findings
Un fil de commentaires
Votre code quitte le runner
Code privé : non, sauf opt-in (payant). Code public : deep scan par défaut.
Local au runner
Cloud ou local
s.o.
Tient le rythme des PR d'agents
Déterministe, chaque PR
Oui, si maintenu
Oui, si maintenu
Non
06La preuve
125
classes de gate
Dérivé du catalogue live — 6 catégories, croît chaque semaine.
3
classes bloquent aujourd'hui
Replay historique, avant le seuil de preuve en aveugle : sur 52 089 pull requests open source ordinaires, le gate en a bloqué 59 (0,11 %). Ce résultat ne mesure pas les classes bloquantes actuelles. Une classe doit désormais atteindre au moins 80 % de précision sur au moins 10 cas de blocage annotés en aveugle, avec des preuves publiques. Les autres classes signalent sans bloquer.
0
lignes de code stockées
Le moteur hébergé ne stocke rien : la source est analysée en mémoire puis jetée.
2 min
à l'installation
OIDC sans clé, un snippet de workflow, protège main.

Déterministe par conception · client open-source, auditable · on le fait tourner sur slopGrade lui-même avant qu'il ne t'arrive.

07Tarifs

Advisory gratuit pour toujours. Solo 49 $/mois pour vous, Team 299 $/mois pour votre équipe — les deux bloquent le merge et prouvent la faille.

Un prix par plan, jamais par tête. Solo : 10 repos privés, une personne. Team : 50 repos privés, utilisateurs illimités. Les deux bloquent sur 3 classes, et le Deep Scan suit la valeur de la requête jusqu'au sink. Les agents, les clés API et les clients MCP ne comptent jamais comme sièges.

Comparer les plansVoyez chaque fuite gratuitement. Bloquez le merge — et prouvez le chemin — quand vous êtes prêts.
Free · advisory0 $ / pour toujours
Solo49 $ / moisou 490 $ / an — 2 mois offertsPour une personne
Pour une équipeTeam299 $ / moisou 2 990 $ / an — 2 mois offertsUtilisateurs illimités
Classes
Cross-tenant + XSS par echo/print PHP bloquants · 22 packs open source actifs ; autres constats sans blocage
3 bloquent · 125 détectées
3 bloquent · 125 détectées
Blocage
Repos publics + 1 privé
10 repos privés inclus, puis 4 $ / repo, jusqu'à 50
Repos privés inclus : 50, puis 4 $ / repo jusqu'à 100 et 3 $ au-delà, sans plafond
Advisory
Tous les repos ; les constats open source ne bloquent jamais
Chaque repo
Tous les repos
Deep Scan (heisen-slop)
Non inclus
API 2 500 fichiers / mois
Sur chaque PR, non décompté · API 5 000 fichiers / mois, puis 10 $ par tranche de 1 000
Personnes
Illimités
1 personne · les agents et les clés API ne comptent jamais
Illimités — jamais par siège
Langages
JS/TS · Python · Go · .NET
+ Java
+ Java
Client open source
✓auditable
✓auditable
✓auditable
Calibration
✓
✓avant qu'une classe bloque
✓avant qu'une classe bloque
Deep Scan · par heisen-slop, notre moteur de flux

Le gate reconnaît la faille. Deep Scan prouve le chemin.

Il suit une valeur de la requête jusqu'au sink — variables, appels, fichiers importés — et ne signale que les flux qu'il prouve, chaque étape avec son file:line.

Flux prouvés
source → sink, étape par étape, sur chaque PR de vos repos Team.
Mode librairie
les paramètres publics comme sources — des candidats à trier, jamais un verdict.
Oracle de preuve
/api/verify : soumettez l'alerte de n'importe quel outil, recevez une preuve rejouable ou une abstention honnête.
Deep Scan signale par défaut. Vous pouvez faire bloquer le build par un nouveau constat (deep-scan-block) — sur du vrai code de CVE, ses blocages sont justes au moins 3 fois sur 4 ; sur 52 089 pull requests open source ordinaires, il en a bloqué 245, dont 46 pour une vraie faille — il reste désactivé sauf si vous le choisissez. « Aucun flux prouvé » n'est pas une garantie de sûreté. Sur un repo privé, votre source ne quitte le runner que si vous activez le Deep Scan ; sur un repo public, il est actif par défaut.
Dans la CI · repos Teamchaque PR · non décompté
API + oracle · Solo2 500 fichiers / mois
API + oracle · Team5 000 fichiers / mois
Au-delà, sur activationplan payant + carte · facturé le 1er du mois10 $ / 1 000 fichiersplafond 2 000 $ / mois
Créer une clé Deep Scan
Enterprise — négocié, contrat annuel : prix de volume au-delà de la courbe de Team, Deep Scan au-delà de 200 000 fichiers / mois, packs détecteurs sur mesure, SLA et DPA no-retention. SSO et déploiement chez vous sont cadrés et datés dans le contrat.
Réserver un appel de 30 min
14 jours gratuits
Sans carte sur votre premier plan Solo ou Team, une fois par compte. Rien n'est débité avant que vous en ajoutiez une.
Au jour 14
Sans carte, l'abonnement est mis en pause — repos, réglages et historique conservés — et reprend dès le paiement.
Une fuite évitée
Une seule fuite cross-tenant bloquée avant le merge = des années d'abonnement. Le gate se rembourse une fois.
08FAQ

Réponses directes.

QQu'est-ce que slopGrade ?

Un gate CI déterministe pour le code écrit par l'IA : sur chaque pull request GitHub, il décide passe ou bloque avant que le code n'atteigne main. Pas de note, pas de débat.

QLe code quitte-t-il mon CI ?

Pas par défaut. Le client lit vos fichiers sur votre runner GitHub Actions et n'envoie qu'une empreinte structurelle — chemins de fichiers, {file, line, kind} et les noms de tables et de colonnes dont le contrôle cross-tenant a besoin, pour la classification. --print-payload montre les octets exacts. Les exceptions sont le Deep Scan (heisen-slop) sur un repo public, actif par défaut, et le Deep Scan opt-in sur un repo privé payant : 80 fichiers porteurs d'un sink au plus, analysés en mémoire puis jetés, informatif sauf si vous réglez deep-scan-block. Un repo privé gratuit n'envoie jamais de source.

QCombien ça coûte ?

L'advisory (scan sans blocage) est gratuit pour toujours sur tous vos repos, et le blocage est gratuit sur les repos publics et un repo privé. Team coûte 299 $ par mois — repos privés inclus : 50, Deep Scan sur chaque PR, utilisateurs illimités — puis 4 $ par repo jusqu'à 100 et 3 $ au-delà. Enterprise est un contrat négocié.

QY a-t-il un essai gratuit ?

Oui : Team est gratuit pendant 14 jours sur votre premier plan Team, sans carte de crédit. Sans carte au jour 14, le compte est mis en pause — repos, réglages et historique conservés — jusqu'au paiement.

QQu'est-ce que le firewall détecte ?

Les fuites cross-tenant et les XSS par echo/print PHP bloquent sur tous les repos publics et 1 repo privé. Pour les XSS, seul un echo/print PHP affichant sans échappement des données de requête ($_GET / $_POST / $_REQUEST / $_COOKIE) bloque. Les 22 packs de détecteurs open source continuent d’analyser tous les repos ; les autres constats sont signalés sans bloquer. Les repos payants détectent 125 classes. 3 classes bloquent sur les repos payants : les fuites cross-tenant, les XSS par echo/print PHP affichant sans échappement des données de requête, et les comparaisons de HMAC ou de signature avec == si une requête peut atteindre la comparaison. Les autres formes de XSS (sinks DOM, XSS réfléchi dans Node, analyse de taint) et toutes les autres classes sont signalées sans bloquer. Le blocage exige au moins 80 % de précision sur au moins 10 cas de blocage annotés en aveugle, avec des preuves publiques mesurées par classe ou par forme.

Mettez un gate entre l'IA et votre branche main.

Créez un compte, collez le snippet, protégez votre premier repo en deux minutes. Team : 14 jours gratuits, sans carte.