Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
nextjs-supabase-stripe-security-checker — Scanner di sicurezza statico locale per app Next.js, Supabase e Stripe: 24 controlli basati su AST per chiavi esposte, RLS e grant mancanti, webhook non sicuri. CLI e GitHub Action. | Kitploit
Strumenti/GitHubGitHub/edtrackai/nextjs-supabase-stripe-security-checker
Autenticazione e AutorizzazioneAnalisi StaticaScanner di VulnerabilitàAnalisi Statica del Codice (SAST)Analisi del CodiceAudit di ConfigurazioneSicurezza WebSicurezza Cloud

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
DevSecOps
Rilevamento Segreti
GitHubedtrackai/nextjs-supabase-stripe-security-checker

nextjs-supabase-stripe-security-checker

Scanner di sicurezza statico locale per app Next.js, Supabase e Stripe: 24 controlli basati su AST per chiavi esposte, RLS e grant mancanti, webhook non sicuri. CLI e GitHub Action.

Vedi Repository
112 giorni faNon ancora revisionato

nextjs-supabase-stripe-security-checker

Scansione di sicurezza locale e gratuita per app Next.js + Supabase + Stripe: chiavi esposte, RLS e grant mancanti, webhook Stripe non sicuri.

Il tuo agente AI ha rilasciato l'app. Ha anche rilasciato la tua chiave segreta Stripe, una tabella senza RLS o un webhook che chiunque può chiamare? Un solo comando lo scopre, in locale, in meno di un secondo.

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

Non è ancora su npm, quindi npx lo esegue direttamente da questo repository GitHub (richiede Node 18+ e git).

Utilizzo in GitHub Actions

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

Il flusso di lavoro completo e i permessi sono riportati di seguito e in docs/github-action.md.

Verifica RLS di Supabase · Sicurezza dei webhook Stripe · Scansione di sicurezza Next.js · Concessioni dell'API Data di Supabase (42501)

Demo: 24 controlli individuano chiavi esposte, RLS e concessioni mancanti e webhook Stripe non sicuri, poi un'app pulita supera --fail-on

Avvio rapido

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 o successivo. C'è una sola dipendenza (@babel/parser). È gratuito e con licenza MIT, non richiede alcun account, non effettua chiamate di rete e non carica mai il tuo codice.

  • 24 controlli su chiavi esposte, autenticazione server, Supabase RLS, webhook/checkout Stripe e hardening. Utilizza il parsing AST dove le regex sarebbero fragili.
  • Basso rumore: 0 risultati su un'app di riferimento hardened e su un fixture "near-miss" di codice sicuro che assomiglia a ciascun bug.
  • Pronto per la CI: --fail-on=high esce con 1, e --json fornisce output leggibile dalla macchina.

Annuncio (a pagamento, stesso autore): Vuoi le correzioni? Launch Audit (12 $ più IVA ove applicabile) aggiunge 28 controlli, un agente auditor AI senza strumenti Edit o Write, e un piano di correzione file:riga.

Opzioni

FlagCosa fa
--jsonOutput leggibile dalla macchina: {tool, version, root, filesScanned, counts, findings[]}
--fail-on=<sev>Esce con 1 se un risultato è pari o superiore a critical / high / medium / low (none non fallisce mai). Esce con 2 in caso di argomenti errati.
--listStampa il catalogo dei controlli
--quietOmette il piè di pagina di una riga sugli strumenti a pagamento (stampato su stderr solo su un terminale; disattivato anche con NO_PROMO=1, CI o GITHUB_ACTIONS)
--helpUtilizzo

In CI: node path/to/bin/nss-security-check.js . --fail-on=high, oppure usa la GitHub Action (riepilogo del job, annotazioni, un commento sticky sulla PR, solo GITHUB_TOKEN). Vedi il workflow di esempio e i permessi in 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

Le modifiche sono elencate in CHANGELOG.md (la 0.5.0 aggiunge l'Action).

I 24 controlli

IDGravitàAreaControllo
K1criticaChiaviChiave segreta/limitata Stripe live (sk_live_/rk_live_) nel codice sorgente, incluse le chiavi suddivise con + (l'evidenza è oscurata)
K2criticaChiaviVariabile NEXT_PUBLIC_ dall'aspetto segreto (service role, secret key, webhook secret…)
K3criticaChiaviFile .env con valori tracciati da git
K4criticaChiaviSegreto lato server o client admin Supabase usato in un componente "use client"
A1altaAuthauth.getSession() considerato attendibile sul server invece di getUser()/getClaims()
A2altaAuthServer Action che scrive dati senza controllo di autenticazione
A3altaAuthRoute API (POST/PUT/PATCH/DELETE) che scrive dati senza controllo di autenticazione (route webhook, cron e auth escluse)
A4altaAuthClient admin interrogato con un id fornito dalla richiesta senza filtro sul proprietario (IDOR)
A5mediaAuthOpen redirect da un parametro di query
R1criticaRLSTabella creata senza row level security
R2criticaRLSPolicy di scrittura con using (true) / with check (true)
R3altaRLSPolicy che consente al ruolo anon di scrivere
R4altaRLSFunzione security definer senza search_path fisso
R5mediaRLSTabella in public senza GRANT esplicito. Supabase ha annunciato che smetterà di concedere i grant predefiniti sulle nuove tabelle pubbliche a partire dal 30 ott 2026, ma a fine agosto un maintainer della CLI di Supabase ha scritto (supabase/cli PR #6337) che la precedente modifica predefinita "non è mai stata rilasciata" e che i progetti ospitati continuavano a concedere i grant automaticamente, quindi la data potrebbe slittare: verifica cosa fa il tuo progetto. Senza un grant, la Data API restituisce 42501
R6altaRLSgrant ... on all tables in schema public / alter default privileges ... grant indiscriminati verso anon/authenticated (la rapida correzione per il 42501 che espone anche le tabelle senza RLS)
S1criticaStripeWebhook senza verifica della firma (constructEvent)
S2criticaStripeIl webhook analizza request.json() invece del corpo grezzo
S3mediaStripeIl webhook non ha idempotenza su event.id
S4altaStripePrezzo o importo del checkout presi dalla richiesta
S5altaStripeAccesso concesso nella pagina di successo del checkout invece che nel webhook
S6mediaStripeDeduplica del webhook che può inghiottire un evento fallito: duplicati saltati senza stato pending/completed
S7bassaStripePeriodo di fatturazione letto da items.data[0] (errato per gli abbonamenti multi-item dall'API 2025-03-31.basil)
H1mediaHardeningNessun header di sicurezza in next.config
H2mediaHardeningdangerouslySetInnerHTML con un valore non letterale

Come viene testato

  • fixtures/vulnerable-app attiva tutti i 23 controlli basati su file, e i test verificano ciascuno nel file previsto. K3 viene testato su un repository git temporaneo.
  • fixtures/clean-app (un'app di riferimento rafforzata) e fixtures/near-miss (codice sicuro che sembra contenere ciascun errore: webhook con corpo grezzo e idempotenza pending/completed, ricerca del periodo sicura per multi-item, redirect protetti, query admin filtrate per proprietario, select using (true), JSON-LD) devono produrre 0 risultati.
  • npm test esegue la suite node:test, inclusi i flag della CLI e i codici di uscita. npm run smoke fornisce un riepilogo su una riga.

Limiti dichiarati

Scarica lo strumento