Non dovresti mai fidarti degli input per il tuo software, indipendentemente dalla fonte. Non solo è importante convalidare i tipi, ma anche intervalli di input e anche la logica aziendale. Per un commento, questo è ben descritto da OWASP
In caso contrario, nella migliore delle ipotesi vi lasceremo con i dati spazzatura che dovrete successivamente ripulire, ma nella peggiore delle ipotesi lascerete un'opportunità per exploit dannosi se quel servizio a monte viene compromesso in qualche modo (qv l'hack Target). La gamma di problemi nel mezzo include il ripristino dell'applicazione in uno stato irrecuperabile.
Dai commenti posso vedere che forse la mia risposta potrebbe usare un po 'di espansione.
Per "non fidarti mai degli input", intendo semplicemente che non puoi presumere che riceverai sempre informazioni valide e affidabili da sistemi a monte o a valle, e quindi dovresti sempre disinfettare quell'input al meglio delle tue capacità, o rifiutare esso.
Un argomento emerso nei commenti che affronterò a titolo di esempio. Sebbene sì, devi fidarti del tuo sistema operativo in una certa misura, non è irragionevole, ad esempio, rifiutare i risultati di un generatore di numeri casuali se gli chiedi un numero compreso tra 1 e 10 e risponde con "bob".
Analogamente, nel caso dell'OP, è necessario assicurarsi che l'applicazione accetti solo input validi dal servizio upstream. Quello che fai quando non va bene dipende da te e dipende molto dall'effettiva funzione aziendale che stai cercando di realizzare, ma minimamente lo registreresti per il debug successivo e in caso contrario assicureresti che la tua applicazione non vada in uno stato irrecuperabile o insicuro.
Anche se non puoi mai sapere ogni possibile input che qualcuno / qualcosa potrebbe darti, puoi certamente limitare ciò che è consentito in base ai requisiti aziendali e fare una sorta di whitelist di input basato su quello.