Uno studio ha scoperto che il codice generato da AI ha 1,7x più probabilità di avere problemi importanti e 2,74x più probabilità di vulnerabilità di sicurezza rispetto al codice scritto da umani. Se hai costruito qualcosa con Cursor, Claude Code o GitHub Copilot, il tuo progetto ha probabilmente almeno uno dei cinque buchi di sicurezza più comuni. Ecco quali sono e come trovarli.
- 45% del codice generato da AI contiene almeno una vulnerabilità di sicurezza
- 1,7x più probabilità di avere problemi importanti rispetto al codice scritto da umani
- 2,74x più soggetto a vulnerabilità di sicurezza specificamente
- Più comuni: Chiavi API hardcoded, validazione input mancante, nessuna sicurezza a livello di riga
- Tempo per audit: 2-3 ore per un progetto tipico vibe-coded
- Ultimo verificato: Aprile 2026
Perché il Codice AI è Vulnerabile
Gli strumenti di codifica AI ottimizzano per "funziona?" non per "è sicuro?" Quando chiedi a Cursor di "aggiungere autenticazione utente", genera codice che autentica gli utenti. Non aggiunge automaticamente rate limiting, sanitizzazione input, protezione CSRF o gestione sessioni sicure — perché non hai chiesto quelle cose.
L'AI scrive esattamente quello che descrivi. La sicurezza richiede di descrivere cose a cui non pensi naturalmente — casi limite, input malevoli, modelli di accesso non autorizzato. Se non è nel tuo prompt, non è nel tuo codice.
Le 5 Vulnerabilità Più Comuni
1. Chiavi API Hardcoded nel Codice Frontend. L'AI frequentemente mette le chiavi API direttamente nei componenti JavaScript o React lato client. Chiunque può aprire browser DevTools e vederle. Soluzione: Sposta tutte le chiavi in variabili d'ambiente (file .env) e accedile solo lato server. Tempo: 15 minuti.
2. Nessuna Sicurezza a Livello di Riga sui Database. Se stai usando Supabase (comune nel vibe coding), il codice generato da AI spesso dà accesso a ogni utente autenticato ai dati di ogni altro utente. Soluzione: Abilita Row Level Security e aggiungi policy per utente. Tempo: 30 minuti.
3. Nessuna Validazione Input Lato Server. I form accettano qualsiasi cosa — script, payload sovradimensionati, tentativi di SQL injection. L'AI aggiunge validazione lato client (che gli utenti possono bypassare) ma salta la validazione lato server. Soluzione: Aggiungi schema Zod o validazione simile su ogni endpoint API. Tempo: 30 minuti per endpoint.
4. Nessun Rate Limiting. Chiunque può colpire la tua API 1.000 volte al secondo. Nessun throttling, nessuna protezione contro gli abusi. Soluzione: Aggiungi rate limiting tramite Upstash Redis o simile. Tempo: 20 minuti.
5. Rotte Non Protette. Pagine dashboard, panel admin e endpoint dati utente si caricano senza verificare se l'utente è loggato. Soluzione: Aggiungi middleware di autenticazione a ogni rotta protetta. Tempo: 15 minuti.
Trovi valore in questo? Pubblichiamo guide di sicurezza per progetti costruiti con AI settimanalmente. Unisciti ai lettori che costruiscono in sicurezza →
Come Fare l'Audit del Tuo Progetto
Scorri questa checklist per qualsiasi progetto costruito con strumenti di codifica AI:
Cerca l'intero codebase per chiavi hardcoded. Esegui: grep -r "sk-" . && grep -r "api_key" . && grep -r "secret" . nella directory del tuo progetto. Qualsiasi corrispondenza nei file frontend sono vulnerabilità critiche.
Controlla ogni endpoint API per validazione input. Apri ogni file di rotta API. Se usa direttamente req.body senza validazione, è vulnerabile.
Verifica la sicurezza del database. Se usi Supabase, controlla la scheda Authentication → Policies. Se non ci sono policy RLS, ogni utente può vedere i dati di ogni altro utente.
Testa l'autenticazione su ogni pagina. Apri il tuo browser in modalità incognito (non loggato) e naviga su ogni pagina della tua app. Se una pagina dashboard o specifica dell'utente si carica, quella rotta non è protetta.
Controlla il rate limiting. Prova a colpire il tuo endpoint API 100 volte in rapida successione usando un semplice script. Se tutti i 100 riescono, non hai rate limiting.
Per una checklist di sicurezza completa, vedi la nostra guida completa per proteggere le app vibe-coded. Per gli errori più comuni e le loro correzioni, leggi 5 errori di sicurezza che ogni vibe coder commette.
Il Cambio di Mentalità
L'AI scrive codice che funziona. Tu devi assicurarti che il codice sia sicuro. Questi sono due skill diversi. Ogni prompt a uno strumento di codifica AI dovrebbe includere requisiti di sicurezza insieme ai requisiti funzionali. "Aggiungi autenticazione utente con rate limiting, validazione input e rotte protette" produce codice dramaticamente più sicuro di "aggiungi autenticazione utente".
Il nostro Prompt Optimizer può aiutarti ad aggiungere automaticamente queste specifiche di sicurezza a qualsiasi prompt di codifica.
Questo è quello che facciamo ogni settimana. Un approfondimento su strumenti AI, workflow e opinioni oneste — senza hype, senza riempitivi. Unisciti a noi →
Dichiarazione: Alcuni link in questo articolo sono link di affiliazione. Consigliamo solo strumenti che abbiamo testato personalmente e usiamo regolarmente. Vedi la nostra politica di divulgazione completa.