9

यहाँ संदर्भ है। यहां, हमारे पास कई वेबस्पेयर एप्लिकेशन सर्वर क्लस्टर हैं, प्रत्येक जावा कई ईई वेब अनुप्रयोग चला रहा है। इन अनुप्रयोगों में से अधिकांश (लेकिन सभी नहीं) में एक अप्रत्याशित अपवाद होने पर कस्टम त्रुटि पृष्ठ प्रदर्शित करने के लिए उनके web.xml में विशेष निर्देश होते हैं। यहाँ एक उदाहरण है:उत्पादन वातावरण - - http 500 त्रुटि पृष्ठ नहीं स्टैकट्रेस कृपया

<error-page> 
    <error-code>500</error-code> 
    <location>/500.jsp</location> 
</error-page> 

कि कर रही है, निश्चित रूप से, हम अपने ग्राहकों के लिए एक दोस्ताना त्रुटि पृष्ठ दिखाने के लिए लक्ष्य है, लेकिन इसके अलावा, हम मुख्य रूप से stacktraces जो आम तौर पर मानक http 500 त्रुटि पृष्ठों में शामिल हैं छिपाने के उद्देश्य ।

जैसा कि आपको पता होना चाहिए, इन स्टैकट्रैक में संकुल के नाम, कक्षाएं नाम और यहां तक ​​कि विधियों के नाम जैसे बहुत से संवेदनशील डेटा शामिल हैं। सबसे खराब, कभी-कभी, इन स्टैकट्रैक में SQL अपवाद होते हैं, जो अक्सर प्रकट करते हैं कि कौन से डेटाबेस सर्वर सॉफ़्टवेयर का उपयोग किया जाता है। यहां तक ​​कि सबसे खराब, कभी-कभी, इन स्टैकट्रैक में फ़ाइल और फ़ोल्डर पथ होते हैं, जो बदले में, यह बता सकते हैं कि कौन से ऑपरेटिंग सिस्टम के परिवार हमारे वेबस्पेयर एप्लिकेशन सर्वर चलाते हैं।

क्या मुझे इन सभी स्टैकट्रैस द्वारा अन्य सभी संवेदनशील डेटा का उल्लेख करने की आवश्यकता है? (उपयोगकर्ता नाम, पोर्ट नंबर, आईपी पते, कंप्यूटर/सर्वर नाम, जेएनडीआई ऑब्जेक्ट्स के नाम ...)

तो, यहां कोई बड़ा आश्चर्य नहीं है, हर बड़े उद्यम को अपने ग्राहकों को इन स्टैकट्रैस को छिपाने की जरूरत है।

कुछ समय, यहां तक ​​कि के साथ एक कस्टम त्रुटि पृष्ठ अच्छी तरह से web.xml फ़ाइल में विन्यस्त, WebSphere बुनियादी त्रुटि पृष्ठ ग्राहकों की वेब ब्राउज़र के लिए भेजता है:

लेकिन, यहाँ हमारे समस्या है। मैं बहुत अच्छी तरह से समझता हूं क्यों वेबस्फीयर ऐसा करता है। उदाहरण के तौर पर, मुझे पता है कि जब http प्रतिक्रिया के शीर्षलेख पहले से ही प्रतिबद्ध हैं, तो वेबस्पेयर कस्टम त्रुटि पृष्ठ भेजने के लिए अपने बफर को रीसेट नहीं कर सकता है, और फिर मूल त्रुटि पृष्ठ भेजने से बेहतर नहीं कर सकता है।

(1) यह संभव WebSphere कॉन्फ़िगर करने के लिए तो यह कभी नहीं कभी अपनी बुनियादी त्रुटि पृष्ठ में किसी भी स्टैकट्रेस शामिल है:

यहाँ मेरे सवाल है? इस तरह, यहां तक ​​कि, कुछ तकनीकी कारणों से, वेबस्पेयर हमारे कस्टम त्रुटि पृष्ठ को नहीं भेज सकता है, कम से कम मूल त्रुटि पृष्ठ में कोई संवेदनशील डेटा शामिल नहीं होगा।

हम यह कैसे कर सकते हैं?

धन्यवाद,

+0

स्टैक ट्रेस अक्षम करने के बारे अपने विशिष्ट सवाल का जवाब नहीं कर सकते हैं, लेकिन आप एक वेब सर्वर या प्रॉक्सी की क्या ज़रूरत है वेबस्पेयर के सामने जहां आप वहां एक त्रुटि पृष्ठ सेट कर सकते हैं? – dbreaux

+0

जब आप डिफ़ॉल्ट त्रुटि पृष्ठ प्राप्त करते हैं तो WAS के सामने एक वेब सर्वर का उपयोग कर रहे हैं और http प्लगइन के माध्यम से जा रहे हैं? – ams

+0

हम अपने वेबस्पेयर सर्वर के सामने माइक्रोसॉफ्ट इंटरनेट इनफॉर्मेशन सर्वर का उपयोग करते हैं और हम वेबस्पेयर सर्वर पर HTTP अनुरोधों को अग्रेषित करने के लिए वेबस्पेयर प्लगइन (एक आईएसएपीआई फ़िल्टर) का उपयोग करते हैं। साथ ही, हम अपनी "प्लगइन-सीएफजी.एक्सएमएल" फाइलें उत्पन्न करने के लिए वेबस्पेयर प्रशासन कंसोल का उपयोग करते हैं। हम इन फ़ाइलों को संपादित नहीं कर सकते हैं (क्योंकि अगर हम उन्हें ट्विक करने के लिए संपादित करते हैं, तो हम लगातार उन्हें अपने बदलावों को रखने के लिए फिर से प्रयास करेंगे)। इसलिए, यदि इन फ़ाइलों में कुछ संशोधन की आवश्यकता है, तो "प्लगइन-सीएफजी.एक्सएमएल" फाइलें उत्पन्न करते समय वेबस्पेयर प्रशासन कंसोल में इन संशोधनों को शामिल किया जाएगा। – closingBrace

उत्तर

1

आप के था विन्यास सेटिंग्स के लिए उपयोग किया है? यदि ऐसा है तो आप httpd.conf में ErrorDocument निर्देश में एक नया डिफ़ॉल्ट मूल त्रुटि पृष्ठ सेट करने में सक्षम होना चाहिए।

+0

जहां तक ​​मुझे पता है, "httpd.conf" अपाचे/आईएचएस (आईबीएम HTTP सर्वर) संबंधित है ... हम माइक्रोसॉफ्ट सूचना सर्वर का उपयोग वेब सर्वर के रूप में हमारे वेबस्पियर सर्वर के सामने करते हैं। क्या आपको पता है कि यह फ़ाइल (httpd.conf) तब भी शामिल है जब वेबस्पेयर इंटरनेट सूचना सर्वर के पीछे है? – closingBrace

1

समापन के रूप में ब्रेस ने कहा कि आपको अपने वेबस्पेयर एप्लिकेशन सर्वर को कॉन्फ़िगर करके प्रिंटिंग स्टैकट्रैस को रोकना चाहिए।

इस प्रयास करें:
com.ibm.ws.webcontainer.suppressHtmlRecursiveErrorOutput, त्रुटि पाठ के HTML आउटपुट को दबाने के लिए संदेश के आंतरिक प्रवेश बदले बिना वेब कंटेनर कस्टम गुण है।

आप इस कस्टम प्रॉपर्टी को उपयोगकर्ता को त्रुटि संदेश के HTML आउटपुट को अक्षम करने के लिए सही सेट कर सकते हैं और उपयोगकर्ता को 500 त्रुटि कोड के साथ रिक्त पृष्ठ के साथ प्रस्तुत कर सकते हैं।

कस्टम पैरामीटर में रखा जाना चाहिए: आवेदन सर्वर> server_name> वेब कंटेनर> कस्टम गुण>

संबंधित मुद्दे