Esporre query SQL in sicurezza
Offra accesso in lettura a un database senza rischi di injection.
Esporre query SQL in sicurezza è una lezione MCP Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento MCP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso MCP Academy include 4 lezioni in totale.
Database dietro uno strumento
Un server MCP può fornire dati reali a un modello racchiudendo un database dietro uno strumento, così l'IA pone domande invece di accedere direttamente alle tabelle. 🗄️
Letture, non scritture
Per iniziare in sicurezza, esponga solo l'accesso in lettura. Lasci che il modello interroghi e riferisca i risultati, mantenendo esclusi inserimenti, aggiornamenti ed eliminazioni.
Il pericolo dell'injection
Non inserisca mai direttamente il testo del modello in SQL. Questo espone a SQL injection, tramite la quale un input preparato ad hoc riscrive la query e divulga o distrugge dati.
query = "SELECT * FROM users WHERE id = " + user_input # unsafe!Usare query parametrizzate
La soluzione sono le query parametrizzate: si scrivono segnaposto e il driver associa i valori in modo sicuro, impedendo all'input di modificare la struttura della query.
cur.execute("SELECT * FROM users WHERE id = ?", (user_id,))Prendere i valori come argomenti
Lasci che il modello passi valori come argomenti tipizzati, quindi costruisca la query. Il modello fornisce dati, non il testo SQL.
@mcp.tool()
def find_user(user_id: int) -> str:
...Fissare la struttura della query
Mantenga l'SQL fisso nel codice e inserisca soltanto parametri associati. Una struttura di query bloccata è il modo più semplice per restare al sicuro.
Usare un ruolo di sola lettura
Difesa a più livelli: si connetta con un utente del database in sola lettura. Anche uno strumento difettoso non potrà quindi modificare o eliminare fisicamente i dati.
Limitare la dimensione del risultato
Limiti sempre le righe con LIMIT, così una query troppo ampia non può riversare una tabella enorme nel modello consumando tutto il budget di token.
cur.execute("SELECT name FROM users LIMIT 50")Inserire le tabelle consentite in una whitelist
Se il modello sceglie una tabella, la convalidi rispetto a una allowlist. Rifiuti tutto ciò che non compare nell'elenco invece di fidarsi del nome.
Restituire righe ordinate
Formatti i risultati come testo chiaro o record semplici, così il modello può leggerli facilmente. Chiarezza in ingresso, chiarezza in uscita per il passaggio di ragionamento successivo.
Nascondere le colonne sensibili
Selezioni soltanto le colonne necessarie all'attività. Escludere segreti come gli hash delle password impedisce del tutto ai dati privati di raggiungere il modello.
Controllo rapido
Che cosa protegge uno strumento SQL dall'injection?
Riepilogo: SQL sicuro
Ha esposto un database in modo sicuro: query di sola lettura parametrizzate, tabelle in allowlist e limiti sulle righe. Ora racchiuda un'API web in uno strumento. 🎯
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Esporre query SQL in sicurezza» è gratuita?
Sì — il testo completo di «Esporre query SQL in sicurezza» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso MCP Academy, passa a CoddyKit PRO. Il corso MCP Academy include 4 lezioni in totale.
Cosa imparerò in «Esporre query SQL in sicurezza»?
Offra accesso in lettura a un database senza rischi di injection. Eserciti MCP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare MCP Academy?
Non è richiesta alcuna esperienza precedente. MCP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Esporre query SQL in sicurezza»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione MCP Academy?
Sì. Ogni lezione MCP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Esporre query SQL in sicurezza
- Trasformare un'API REST in strumenti
- Gestire un pool di connessioni nel ciclo di vita
- Memorizzare nella cache e limitare il rate degli upstream