मैं कंपनी के दिशानिर्देशों के बारे में लिखने वाला हूं कि लॉग में कभी नहीं दिखना चाहिए (एक आवेदन का पता लगाना)। वास्तव में, कुछ डेवलपर्स ट्रेस में संभव के रूप में कई जानकारी शामिल करने का प्रयास करते हैं, जिससे उन लॉग को स्टोर करना जोखिम भरा हो जाता है, और उन्हें जमा करने के लिए बेहद खतरनाक होता है , खासकर जब ग्राहक को यह जानकारी नहीं होती है, क्योंकि वह इस बारे में कभी भी ध्यान नहीं देता है। और कभी भी प्रलेखन और / या चेतावनी संदेश नहीं पढ़ें।
उदाहरण के लिए, फ़ाइलों के साथ काम करते समय, कुछ डेवलपर्स फ़ाइलों के नाम का पता लगाने के लिए परीक्षा में आते हैं । उदाहरण के लिए, किसी डायरेक्टरी में फ़ाइल का नाम जोड़ने से पहले, यदि हम त्रुटि पर सब कुछ ट्रेस करते हैं, तो उदाहरण के लिए यह नोटिस करना आसान होगा कि एपेंडेड नाम बहुत लंबा है, और कोड में बग की लंबाई की जांच करना भूल गया था घनीभूत स्ट्रिंग। यह मददगार है, लेकिन यह संवेदनशील डेटा है, और लॉग में कभी नहीं दिखना चाहिए ।
उसी तरह से:
- पासवर्ड ,
- आईपी पते और नेटवर्क जानकारी (मैक पता, होस्ट नाम, आदि) information,
- डेटाबेस का उपयोग,
- उपयोगकर्ता और संग्रहीत व्यावसायिक डेटा से प्रत्यक्ष इनपुट
ट्रेस में कभी नहीं दिखना चाहिए।
तो लॉग से किस प्रकार की अन्य जानकारी को गायब कर दिया जाना चाहिए? क्या पहले से कोई दिशानिर्देश हैं जो मैं उपयोग कर सकता हूं?
, जाहिर है, मैं आईआईएस या अपाचे लॉग के रूप में चीजों के बारे में बात नहीं कर रहा हूं। मैं जिस बारे में बात कर रहा हूं, वह सूचना है जो केवल आवेदन को डिबग करने के इरादे से एकत्र की जाती है, न कि अविश्वसनीय संस्थाओं की गतिविधि का पता लगाने के लिए।
संपादित करें: आपके उत्तर और आपकी टिप्पणियों के लिए धन्यवाद। चूंकि मेरा प्रश्न बहुत सटीक नहीं है, इसलिए मैं टिप्पणियों में पूछे गए सवालों के जवाब देने की कोशिश करूंगा:
- मैं लॉग के साथ क्या कर रहा हूं?
एप्लिकेशन के लॉग को मेमोरी में संग्रहीत किया जा सकता है, जिसका अर्थ है या तो लोकलहोस्ट पर हार्ड डिस्क पर, डेटाबेस में, सादे में, या विंडोज इवेंट में। हर मामले में, चिंता का विषय यह है कि वे स्रोत पर्याप्त सुरक्षित नहीं हो सकते हैं। उदाहरण के लिए, जब कोई ग्राहक एक एप्लिकेशन चलाता है और यह एप्लिकेशन टेम्पर्ड डायरेक्टरी में प्लेन टेक्स्ट फाइल में लॉग इन करता है, तो कोई भी व्यक्ति जिसके पास पीसी तक भौतिक पहुंच है, उन लॉग्स को पढ़ सकता है।
आवेदन के लॉग इंटरनेट के माध्यम से भी भेजे जा सकते हैं। उदाहरण के लिए, यदि किसी ग्राहक के पास आवेदन के साथ कोई समस्या है, तो हम उसे पूर्ण-ट्रेस मोड में इस एप्लिकेशन को चलाने और हमें लॉग फ़ाइल भेजने के लिए कह सकते हैं। इसके अलावा, कुछ एप्लिकेशन अपने आप क्रैश रिपोर्ट हमें भेज सकते हैं (और भले ही संवेदनशील डेटा के बारे में चेतावनी हो, ज्यादातर मामलों में ग्राहक उन्हें नहीं पढ़ते हैं)।
- क्या मैं विशिष्ट क्षेत्रों के बारे में बात कर रहा हूं?
नहीं, मैं केवल सामान्य व्यावसायिक अनुप्रयोगों पर काम कर रहा हूं, इसलिए केवल संवेदनशील डेटा व्यवसाय डेटा है। विशिष्ट नियमों द्वारा कवर किए गए स्वास्थ्य या अन्य क्षेत्रों से संबंधित कुछ भी नहीं है। लेकिन इसके बारे में बात करने के लिए धन्यवाद, मुझे संभवतः उन क्षेत्रों के बारे में कुछ सुरागों के बारे में जानकारी लेनी चाहिए जो मैं दिशानिर्देशों में शामिल कर सकता हूं।
- क्या डेटा एन्क्रिप्ट करना आसान नहीं है?
नहीं, यह हर आवेदन को और अधिक कठिन बना देगा, खासकर यदि हम C # निदान का उपयोग करना चाहते हैं और TraceSource
। इसके लिए प्राधिकरणों का प्रबंधन भी करना होगा, जो करना आसान नहीं है। अंत में, यदि हम किसी ग्राहक से हमें जमा किए गए लॉग के बारे में बात कर रहे हैं, तो हमें लॉग को पढ़ने में सक्षम होना चाहिए, लेकिन संवेदनशील डेटा तक पहुंच के बिना। तो तकनीकी रूप से, लॉग में संवेदनशील जानकारी को कभी भी शामिल करना आसान नहीं है और उन लॉग को कैसे और कहां संग्रहीत किया जाता है, इस बारे में कभी ध्यान नहीं देना चाहिए।
debug
एक फ़ाइल नाम के लिए ठीक हो सकता है , लेकिनinfo
एक फ़ाइल नाम के लिए नहीं ।