Nigdy nie należy ufać wejściom do oprogramowania, niezależnie od źródła. Ważne jest nie tylko sprawdzanie poprawności typów, ale także zakresów danych wejściowych i logiki biznesowej. W komentarzu jest to dobrze opisane przez OWASP
Niezastosowanie się do tego spowoduje w najlepszym wypadku śmieciowe dane, które musisz później wyczyścić, ale w najgorszym przypadku pozostawisz możliwość złośliwych exploitów, jeśli ta usługa zostanie w jakiś sposób naruszona (qv Target hack). Zakres problemów między nimi obejmuje doprowadzenie aplikacji do stanu niemożliwego do odzyskania.
Z komentarzy wynika, że być może moja odpowiedź przydałaby się trochę rozbudowy.
Przez „nigdy nie ufaj wejściom” mam na myśli po prostu, że nie możesz zakładać, że zawsze będziesz otrzymywać ważne i godne zaufania informacje z wcześniejszych lub późniejszych systemów i dlatego zawsze powinieneś dezynfekować te dane wejściowe najlepiej jak potrafisz, lub odrzucić to.
Jeden komentarz pojawił się w komentarzach, które podam jako przykład. Chociaż tak, musisz w pewnym stopniu zaufać swojemu systemowi operacyjnemu, ale nie jest nieuzasadnione, na przykład, odrzucenie wyników generatora liczb losowych, jeśli poprosisz o numer od 1 do 10, a on odpowie „bob”.
Podobnie, w przypadku PO, zdecydowanie powinieneś upewnić się, że Twoja aplikacja akceptuje tylko prawidłowe dane wejściowe z usługi nadrzędnej. To, co zrobisz, gdy nie będzie w porządku, zależy od ciebie i zależy w dużej mierze od faktycznej funkcji biznesowej, którą próbujesz osiągnąć, ale minimalnie zalogowałbyś ją do późniejszego debugowania i w przeciwnym razie upewnisz się, że aplikacja nie pójdzie w stan niemożliwy do odzyskania lub niepewny.
Chociaż nigdy nie możesz poznać wszystkich możliwych danych wejściowych, które może dać ktoś / coś, z pewnością możesz ograniczyć to, co jest dozwolone, w zależności od wymagań biznesowych i wykonać jakąś formę białej listy danych wejściowych na tej podstawie.