Audit di sicurezza di un frammento di codice secondo OWASP
Controlla un frammento di codice alla ricerca di vulnerabilità OWASP Top 10: problemi con gravità, scenario di abuso, codice corretto e test per verificare che il difetto non ritorni. Pensato per ChatGPT, Claude, Gemini e Microsoft Copilot. Include 4 variabili personalizzabili e puoi copiarlo gratuitamente con un clic.
Avanzato · Codice · In attesa di revisione editoriale
Prompt
Agisci come ingegnere di sicurezza applicativa specializzato in revisione di codice sicuro e nell'OWASP Top 10.
Contesto:
- Linguaggio e framework: {{linguaggio}}
- Cosa fa il codice e dove viene eseguito: {{contesto}}
- Esposizione: {{esposizione}}
- Codice da revisionare:
```
{{codice}}
```
Consegne:
1. Sintesi in 3 righe: livello di rischio complessivo e problema più urgente.
2. Tabella dei problemi: ID, riga o frammento interessato, categoria OWASP Top 10 e CWE quando pertinente, gravità (critica, alta, media, bassa) motivata in base all'esposizione, e livello di confidenza.
3. Per ogni problema: perché è vulnerabile e uno scenario di abuso descritto in modo concettuale, senza payload di exploit pronti all'uso.
4. Codice corretto completo con le difese idiomatiche di {{linguaggio}} (query parametrizzate, escaping contestuale, validazione con whitelist, controllo degli accessi lato server, gestione sicura dei segreti).
5. Test automatici che dimostrino che la correzione funziona, inclusi input malevoli tipici.
6. Misure di difesa in profondità fuori dal codice (header, privilegi minimi, log e alert).
Vincoli:
- Non segnalare come vulnerabile qualcosa che non puoi motivare; se dipende da codice che non vedo, indicalo come [DA COMPLETARE: confermare] e spiega cosa controllare.
- Indica anche cosa è fatto bene, per non romperlo durante la correzione.
- Se manca un contesto chiave (autenticazione, provenienza dei dati), chiedimelo prima.
- Questa revisione è orientativa: per sistemi in produzione con dati sensibili, consiglia un audit o un penetration test professionale.
Formato: sintesi, tabella, dettaglio per problema, codice corretto e test.Come usarlo
Incolla l’intera funzione o l’endpoint, non solo la riga sospetta, e spiega da dove arrivano i dati in ingresso. Correggi prima i problemi critici ed esegui i test proposti prima del merge.
Esempio d'uso
Linguaggio: PHP 8 senza framework · Contesto: endpoint che cerca ordini per email del cliente · Esposizione: Internet pubblico · Codice: query SQL costruita concatenando $_GET.
Esempio di risultato
1. Sintesi
Rischio critico. L’id viene concatenato nell’SQL (injection) e nessuno verifica che la fattura appartenga all’utente (IDOR). Entrambi sono sfruttabili da Internet.
2. Rilievi
| ID | Frammento | Categoria | Gravità | Confidenza |
|---|---|---|---|---|
| F1 | '... WHERE id = ' + req.params.id | A03 Injection · CWE-89 | Critica | Alta |
| F2 | Nessun filtro per utente | A01 Controllo accessi · CWE-639 | Alta | Alta |
| F3 | SELECT * | A01 · esposizione di dati | Media | Media |
| F4 | Promise senza catch | A09 · errori non gestiti | Bassa | Alta |
4. Codice corretto
app.get('/fatture/:id', requireAuth, async (req, res, next) => {
// Allow-list: solo interi positivi
if (!/^[1-9]\d{0,9}$/.test(req.params.id)) {
return res.status(400).json({ error: 'id_non_valido' });
}
try {
// Query parametrizzata (sintassi node-postgres: [DA COMPLETARE: confermare il driver])
const { rows } = await db.query(
'SELECT id, numero, data_emissione, totale, stato FROM fatture WHERE id = $1 AND utente_id = $2',
[req.params.id, req.user.id],
);
// 404 sia se manca sia se è di un altro: non rivela quali id esistono
if (rows.length === 0) return res.status(404).json({ error: 'non_trovata' });
return res.json(rows[0]);
} catch (err) {
return next(err);
}
});
Le colonne sono un esempio: limitale a ciò che il cliente deve davvero vedere. Questa revisione è orientativa; prima di andare in produzione con dati di fatturazione serve un audit professionale…
Dati chiave
- Categoria
- Programmazione e sviluppo · Debugging
- Tipo di output
- Codice
- Livello
- Avanzato
- Pensato per
- ChatGPT, Claude, Gemini e Microsoft Copilot
- Verificato in
- In attesa di verifica editoriale
- Variabili
- Linguaggio e framework, Cosa fa e dove gira, Esposizione e Codice
- Lingua
- Italiano
- Prezzo
- Gratuito, senza registrazione
- Aggiornato
- 07/11/2026
Domande frequenti
L’IA può sostituire uno strumento SAST o un penetration test?
No. È utile come primo controllo e per capire i problemi, ma può non vedere alcune falle o dare falsi positivi. Affiancala ad analisi statica, revisione umana e, per sistemi critici, test di penetrazione professionali.
È sicuro incollare il mio codice in un chatbot?
Rimuovi prima chiavi, password, token e dati personali e verifica la policy aziendale sugli strumenti di IA. Per codice riservato usa un piano business con garanzie sulla privacy.
A cosa serve questo prompt?
Controlla un frammento di codice alla ricerca di vulnerabilità OWASP Top 10: problemi con gravità, scenario di abuso, codice corretto e test per verificare che il difetto non ritorni.
Con quali strumenti di IA funziona?
È pensato per ChatGPT, Claude, Gemini e Microsoft Copilot. Non lo abbiamo ancora verificato in questi strumenti, quindi i risultati possono variare da uno all'altro.
Come personalizzo il prompt?
Clicca su «Personalizza» e compila le variabili (Linguaggio e framework, Cosa fa e dove gira, Esposizione e Codice). Il testo si aggiorna all'istante e poi puoi copiarlo con un clic. I valori vengono salvati solo nel tuo browser.
Serve esperienza per usarlo?
È di livello avanzato: è pensato per persone con esperienza nell'argomento, in grado di valutare e regolare il risultato.
Questo prompt è gratuito?
Sì. Tutti i prompt di HomeCasa Prompts sono gratuiti, senza registrazione né abbonamento. Puoi usarli anche in progetti professionali.
Posso fidarmi dell'output dell'IA?
Consideralo una bozza di alta qualità: verifica sempre dati, cifre e affermazioni importanti prima di pubblicare o prendere decisioni.