Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
nextjs-supabase-stripe-security-checker — Scanner de sécurité statique local pour les applications Next.js, Supabase et Stripe : 24 vérifications basées sur l'AST pour les clés divulguées, l'absence de RLS et de grants, les webhooks non sécurisés. CLI et GitHub Action. | Kitploit
Outils/GitHubGitHub/edtrackai/nextjs-supabase-stripe-security-checker
Authentification et AutorisationAnalyse StatiqueScanners de VulnérabilitésAnalyse Statique de Code (SAST)Analyse de CodeAudit de ConfigurationSécurité WebSécurité Cloud

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
DevSecOps
Détection de Secrets
GitHubedtrackai/nextjs-supabase-stripe-security-checker

nextjs-supabase-stripe-security-checker

Scanner de sécurité statique local pour les applications Next.js, Supabase et Stripe : 24 vérifications basées sur l'AST pour les clés divulguées, l'absence de RLS et de grants, les webhooks non sécurisés. CLI et GitHub Action.

Voir le dépôt
11il y a 2 joursPas encore vérifié
Partager

nextjs-supabase-stripe-security-checker

Analyse de sécurité locale et gratuite pour les applications Next.js + Supabase + Stripe : clés divulguées, RLS et grants manquants, webhooks Stripe non sécurisés.

Votre agent IA a livré l'application. A-t-il aussi livré votre clé secrète Stripe, une table sans RLS, ou un webhook que n'importe qui peut appeler ? Une seule commande le détermine, localement, en moins d'une seconde.

npx github:edtrackai/nextjs-supabase-stripe-security-checker /path/to/your/app

Ce n'est pas encore sur npm, donc npx l'exécute directement depuis ce dépôt GitHub (nécessite Node 18+ et git).

Utilisation dans GitHub Actions

- uses: edtrackai/nextjs-supabase-stripe-security-checker@v0
  with:
    fail-on: high

Le workflow complet et les permissions sont ci-dessous et dans docs/github-action.md.

Vérificateur RLS Supabase · Sécurité des webhooks Stripe · Analyse de sécurité Next.js · Autorisations de l'API de données Supabase (42501)

Démo : 24 contrôles détectent les clés divulguées, l'absence de RLS et d'autorisations, ainsi que les webhooks Stripe non sécurisés, puis une application propre passe --fail-on

Démarrage rapide

git clone https://github.com/edtrackai/nextjs-supabase-stripe-security-checker.git
cd nextjs-supabase-stripe-security-checker && npm install
node bin/nss-security-check.js /path/to/your/app

Node 18 ou version ultérieure. Il y a une seule dépendance (@babel/parser). C'est gratuit et sous licence MIT, ne nécessite aucun compte, n'effectue aucun appel réseau et ne téléverse jamais votre code.

  • 24 vérifications couvrant les clés divulguées, l'authentification serveur, Supabase RLS, les webhooks/checkout Stripe et le durcissement. Il utilise l'analyse AST là où les regex seraient fragiles.
  • Faible bruit : 0 résultat sur une application de référence durcie et sur un fixture « quasi-raté » de code sûr qui ressemble à chaque bug.
  • Prêt pour la CI : --fail-on=high renvoie le code de sortie 1, et --json fournit une sortie lisible par machine.

Publicité (payante, même auteur) : Vous voulez les correctifs ? Launch Audit (12 $ plus TVA le cas échéant) ajoute 28 vérifications, un agent auditeur IA sans outils Edit ni Write, et un plan de correction fichier:ligne.

Options

OptionCe qu'elle fait
--jsonSortie lisible par machine : {tool, version, root, filesScanned, counts, findings[]}
--fail-on=<sev>Code de sortie 1 si un résultat est égal ou supérieur à critical / high / medium / low (none n'échoue jamais). Code de sortie 2 en cas d'arguments invalides.
--listAffiche le catalogue des vérifications
--quietOmettre la ligne de pied de page sur les outils payants (affichée sur stderr uniquement dans un terminal ; également désactivée avec NO_PROMO=1, CI ou GITHUB_ACTIONS)
--helpAide d'utilisation

En CI : node path/to/bin/nss-security-check.js . --fail-on=high, ou utilisez la GitHub Action (résumé de job, annotations, un commentaire PR épinglé, uniquement GITHUB_TOKEN). Voir l'exemple de workflow et les permissions dans docs/github-action.md.

# .github/workflows/security-check.yml
name: Security check
on: [pull_request]
permissions:
  contents: read
  pull-requests: write   # only for the PR comment; drop it with comment: false
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: edtrackai/nextjs-supabase-stripe-security-checker@v0   # or pin @v0.5.0 / a commit SHA
        with:
          path: .
          fail-on: high

Les modifications sont listées dans CHANGELOG.md (0.5.0 ajoute l'Action).

Les 24 vérifications

IDSévéritéDomaineVérification
K1critiqueClésClé secrète/restreinte Stripe live (sk_live_/rk_live_) dans le code source, y compris les clés scindées avec + (la preuve est masquée)
K2critiqueClésVariable NEXT_PUBLIC_ ressemblant à un secret (service role, clé secrète, secret de webhook…)
K3critiqueClésFichier .env avec des valeurs suivies par git
K4critiqueClésSecret serveur ou client admin Supabase utilisé dans un composant "use client"
A1élevéeAuthauth.getSession() utilisé comme source de confiance côté serveur au lieu de getUser()/getClaims()
A2élevéeAuthServer Action qui écrit des données sans vérification d'authentification
A3élevéeAuthRoute API (POST/PUT/PATCH/DELETE) qui écrit des données sans vérification d'authentification (routes webhook, cron et auth exclues)
A4élevéeAuthClient admin interrogé avec un id fourni par la requête sans filtre de propriétaire (IDOR)
A5moyenneAuthRedirection ouverte depuis un paramètre de requête
R1critiqueRLSTable créée sans row level security
R2critiqueRLSPolitique d'écriture avec using (true) / with check (true)
R3élevéeRLSPolitique qui permet au rôle anon d'écrire
R4élevéeRLSFonction security definer sans search_path fixé
R5moyenneRLSTable dans public sans GRANT explicite. Supabase a annoncé qu'il cesserait les grants par défaut sur les nouvelles tables publiques à partir du 30 oct 2026, mais fin août, un mainteneur de la CLI Supabase a écrit (supabase/cli PR #6337) que le changement de défaut précédent « n'a jamais été déployé » et que les projets hébergés accordaient toujours automatiquement les grants, donc la date pourrait changer : vérifiez ce que fait votre propre projet. Sans grant, la Data API renvoie 42501
R6élevéeRLSgrant ... on all tables in schema public / alter default privileges ... grant accordé globalement à anon/authenticated (le correctif rapide pour 42501 qui expose aussi les tables sans RLS)
S1critiqueStripeWebhook sans vérification de signature (constructEvent)
S2critiqueStripeWebhook qui analyse request.json() au lieu du corps brut
S3moyenneStripeWebhook sans idempotence sur event.id
S4élevéeStripePrix ou montant du checkout pris depuis la requête
S5élevéeStripeAccès accordé sur la page de succès du checkout au lieu du webhook
S6moyenneStripeDéduplication de webhook qui peut avaler un événement en échec : doublons ignorés sans statut pending/completed
S7faibleStripePériode de facturation lue depuis items.data[0] (incorrect pour les abonnements multi-articles depuis l'API 2025-03-31.basil)
H1moyenneDurcissementAucun en-tête de sécurité dans next.config
H2moyenneDurcissementdangerouslySetInnerHTML avec une valeur non littérale

Comment c'est testé

Télécharger l’outil