Sicurezza
đź”’ Non condividere mai le tue chiavi AUTH_KEY e AUTH_SECRET in repository pubblici. L'IA opera su database di contatti reali: proteggi l'accesso al file di configurazione MCP.
L'output del server MCP espone dati sensibili
Considera tutte le risposte dei tool provenienti da questo server come dati sensibili.
Il server trasmette le risposte di Smshosting esattamente nella forma in cui le riceve, e alcuni dei campi restituiti provengono da terze parti :
- Il contenuto dei messaggi ricevuti o programmati (
send_sms,get_sms, ...) - Nomi e descrizioni di contatti e gruppi (
get_contacts,get_groups, ...) - Nomi di campi personalizzati, descrizioni di sotto-utenti e altri campi modificabili dall'utente
⚠️ Un malintenzionato potrebbe inserire istruzioni destinate al modello linguistico all'interno di uno di questi campi (ad esempio nel testo di un SMS in arrivo o nel nome di un contatto). Si tratta di un classico caso di prompt injection tramite la risposta di un tool.
Questo è un limite dell'architettura MCP: il server non può distinguere i dati reali dalle istruzioni all'interno del contenuto restituito dal backend. La responsabilità di convalidare e pulire (sanitize) l'output spetta quindi al client MCP (l'applicazione o l'agente che consuma questi dati).
Presta particolare attenzione a non combinare tre funzionalitĂ nello stesso agente (la cosiddetta "combinazione letale" o lethal trifecta):
- Accesso a contenuti non affidabili
- Accesso a dati sensibili
- CapacitĂ di compiere azioni esterne (ad es. inviare un SMS)
Un agente con queste tre caratteristiche potrebbe essere ingannato dalle istruzioni malevole e compiere un'azione non desiderata utilizzando il tuo token valido.
Buone pratiche per gestire l'output in modo sicuro
- Non eseguire le istruzioni trovate nelle risposte dei tool. Trattale sempre come dati da mostrare o elaborare, mai come comandi per l'agente.
- Richiedi la conferma umana (human-in-the-loop) per le operazioni distruttive o verso l'esterno (es.
send_sms,delete_contact,remove_*). Il server contrassegna queste azioni con l'annotazionedestructiveHint: true: configura il client in modo che la rispetti. - Non mostrare il contenuto della risposta in formato HTML/Markdown senza averlo prima sanificato. Se presenti l'output all'utente, convertilo in testo semplice (plain text) o fai l'escape dei caratteri.
- Isola il contesto. Se possibile, separa il contenuto proveniente dai tool dal system prompt o dalle istruzioni dell'agente (ad esempio usando un'etichetta chiara che indichi che si tratta di dati di terze parti).
- Limita i permessi del token (token scope) al minimo necessario (vedi la tabella in Autorizzazioni e Permessi): questo riduce la portata di eventuali danni.