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

IDFrammentoCategoriaGravitàConfidenza
F1'... WHERE id = ' + req.params.idA03 Injection · CWE-89CriticaAlta
F2Nessun filtro per utenteA01 Controllo accessi · CWE-639AltaAlta
F3SELECT *A01 · esposizione di datiMediaMedia
F4Promise senza catchA09 · errori non gestitiBassaAlta

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.

Prompt correlati