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