L'iniezione di comandi di protocollo si verifica quando un input controllato dall'attaccante viene interpretato come parte di un comando del protocollo di rete invece che come semplice dato. In altre parole, il client o il parser non riesce a mantenere un confine rigoroso tra l'input dell'utente e le istruzioni del protocollo, quindi una stringa può cambiare il modo in cui la connessione si comporta.
Questo è importante perché può consentire a un attaccante di attivare richieste impreviste, alterare intestazioni o opzioni, aggirare le assunzioni di autenticazione o reindirizzare il traffico verso un servizio diverso. Nei sistemi reali, il rischio si manifesta in client, proxy, librerie e strumenti di automazione che costruiscono messaggi di protocollo a partire da stato riutilizzabile o campi non attendibili. I difensori riducono il rischio convalidando e codificando gli input, separando i dati dei comandi dai dati di controllo, reimpostando lo stato del protocollo tra le richieste e testando casi limite come i reindirizzamenti, le impostazioni del proxy e il riutilizzo degli handle. Una gestione sicura del protocollo consiste nell'assicurarsi che l'input dell'utente non diventi mai sintassi del protocollo.


