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