आपको स्रोत की परवाह किए बिना अपने सॉफ़्टवेयर के इनपुट पर कभी भी भरोसा नहीं करना चाहिए। न केवल प्रकारों को मान्य करना महत्वपूर्ण है, बल्कि इनपुट और व्यापारिक तर्क भी हैं। एक टिप्पणी के अनुसार, यह OWASP द्वारा अच्छी तरह से वर्णित है
ऐसा करने में विफल रहने पर आपको कचरा डेटा के साथ सबसे अच्छा छोड़ना होगा जिसे आपको बाद में साफ करना होगा, लेकिन सबसे खराब रूप से आप दुर्भावनापूर्ण कारनामों के लिए एक मौका छोड़ देंगे यदि उस अपस्ट्रीम सेवा को कुछ फैशन में समझौता किया जाए (टारगेट हैक)। बीच की समस्याओं की सीमा में आपका आवेदन अपरिवर्तनीय स्थिति में प्राप्त करना शामिल है।
टिप्पणियों से मैं देख सकता हूं कि शायद मेरा जवाब थोड़ा विस्तार का उपयोग कर सकता है।
"इनपुट्स पर कभी भरोसा न करें" से मेरा सीधा सा मतलब है कि आप यह नहीं मान सकते कि आपको हमेशा अपस्ट्रीम या डाउनस्ट्रीम सिस्टम से वैध और भरोसेमंद जानकारी प्राप्त होगी, और इसलिए आपको हमेशा उस इनपुट को अपनी क्षमता के अनुसार सबसे अच्छा होना चाहिए, या अस्वीकार करना चाहिए यह।
उदाहरण के माध्यम से मैं जिन टिप्पणियों को संबोधित करूंगा उनमें एक तर्क सामने आया। हां, आपको अपने ओएस पर कुछ हद तक भरोसा करना होगा, यह अनुचित नहीं है, उदाहरण के लिए, यादृच्छिक संख्या जनरेटर के परिणामों को अस्वीकार करें यदि आप इसे 1 और 10 के बीच की संख्या के लिए पूछते हैं और यह "बॉब" के साथ प्रतिक्रिया करता है।
इसी तरह, ओपी के मामले में, आपको निश्चित रूप से यह सुनिश्चित करना चाहिए कि आपका आवेदन केवल अपस्ट्रीम सेवा से मान्य इनपुट स्वीकार कर रहा है। जब आप ठीक नहीं होते हैं, तो यह आपके ऊपर होता है, और वास्तविक व्यावसायिक कार्य पर एक बड़ा सौदा निर्भर करता है जिसे आप पूरा करने की कोशिश कर रहे हैं, लेकिन न्यूनतम रूप से आप इसे बाद में डिबगिंग के लिए लॉग इन करेंगे और अन्यथा यह सुनिश्चित करेंगे कि आपका आवेदन नहीं जाता है अप्राप्य या असुरक्षित अवस्था में।
हालांकि आप हर संभव इनपुट किसी को कभी नहीं जान सकते हैं / कुछ आपको दे सकते हैं, आप निश्चित रूप से यह सीमित कर सकते हैं कि व्यवसाय की आवश्यकताओं के आधार पर क्या स्वीकार्य है और उस आधार पर इनपुट श्वेत सूची के कुछ रूप हैं।