Lanciare un'app Next.js con Cursor, v0 o Bolt è veloce, ma la velocità nasconde falle che non vedi finché qualcuno non le trova al posto tuo. Questa checklist copre il minimo indispensabile prima di premere deploy.
Variabili d'ambiente: attenzione a NEXT_PUBLIC
Tutto ciò che inizia con NEXT_PUBLIC_ viene incorporato nel bundle del browser. Chiunque può leggerlo aprendo i DevTools. Non mettere mai lì una chiave API privata, un token di servizio o il segreto del tuo database.
Riserva quel prefisso a valori davvero pubblici, come l'URL della tua API o un ID di analytics. Le variabili senza prefisso vivono solo sul server: usale per le chiavi private e leggile solo da Server Components, API route o Server Actions.
API route: valida e autorizza sempre
Una API route non è privata solo perché sta nella tua cartella. È un URL pubblico che chiunque può chiamare con curl. Controlla la sessione dell'utente in ogni handler, non solo nell'interfaccia. Un pulsante nascosto non impedisce a qualcuno di colpire l'endpoint direttamente.
Valida il corpo della richiesta prima di toccare il database e non fidarti mai che il frontend mandi dati puliti. Un attaccante scrive il proprio frontend.
Header di sicurezza
Di default Next.js non manda header difensivi. In next.config.js aggiungi almeno Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options e una Content-Security-Policy. Questi header riducono clickjacking, sniffing dei tipi ed esecuzione di script iniettati.
Segreti che trapelano al client
È facile che una chiave privata finisca in un Client Component per errore, soprattutto quando l'IA riscrive i file. Cerca nel tuo bundle finale stringhe come sk_, service_role o URL di webhook. Se compaiono nel JavaScript servito sono già compromesse: ruotale e spostale sul server.
File che non dovrebbero essere raggiungibili
Assicurati che .env, .git e i file di backup non vengano serviti in produzione. Un .env raggiungibile via URL è la via più diretta per farti svuotare il database. Controlla anche che package.json non esponga percorsi interni o dipendenze che rivelano il tuo stack.
Controlla tutto questo in 30 secondi
Passare questa lista a mano a ogni deploy è noioso e facile da dimenticare. Scanaris esegue controlli di sola lettura sul tuo sito pubblicato: header, segreti esposti nel JavaScript, file sensibili raggiungibili e impostazioni dei cookie. Ogni risultato arriva con un prompt pronto da incollare nella tua IA così lo sistemi senza indovinare. Scansionalo prima di annunciare il tuo lancio.