2013-01-23 13 views
15

एक उत्पादन वातावरण में, मैं लोगों को यह क्यों कहता हूं कि DEBUG = True को छोड़कर संभावित रूप से खतरनाक है?DEBUG = True Django

एक उदाहरण क्या है जहां कोई मेरे सर्वर पर दुर्भावनापूर्ण कार्य करने के लिए इस सुरक्षा समस्या का फायदा उठा सकता है?

+0

आपको सही उत्तर स्वीकार करना चाहिए। – shuboy2014

+0

आपको @ प्रवीणगोलाकोटा के उत्तर –

उत्तर

11

https://docs.djangoproject.com/en/dev/ref/settings/#debug

"कभी उत्पादन में एक साइट को तैनात डीबग के साथ चालू कर दिया।

आपको लगता है कि पकड़ किया? डीबग साथ चालू कभी उत्पादन में एक साइट को तैनात।

मुख्य विशेषताओं में से एक डीबग मोड का विस्तृत त्रुटि पृष्ठों का प्रदर्शन होता है। यदि आपका ऐप डीबीयूजी सच होने पर अपवाद उठाता है, तो Django आपके पर्यावरण के बारे में बहुत सारे मेटाडेटा सहित विस्तृत ट्रेसबैक प्रदर्शित करेगा, जैसे वर्तमान में परिभाषित डीजेगो सेटिंग्स (सेटिंग्स से। py)। "

असल में, यह एक अंतरंग सुरक्षा छेद है।

यह भी स्मृति का एक बहुत बरबाद करती है:।

"यह भी याद रखना होगा कि जब डीबग के साथ चल चालू, जैंगो हर SQL क्वेरी यह कार्यान्वित याद होगा महत्वपूर्ण है यह उपयोगी है जब आप डीबगिंग रहे है, लेकिन यह एक उत्पादन सर्वर पर तेजी से स्मृति का उपभोग करेगा। "

+0

स्वीकार करना चाहिए तो हमें उत्पादन में ** DEBUG ** असाइन करने की आवश्यकता क्या है? उत्पादन वातावरण के लिए – shuboy2014

+0

@ shuboy2014 'DEBUG = झूठा' –

+0

यह सवाल का जवाब नहीं दे रहा था। ओपी को लगता है कि उत्पादन में डीबीयूजी को सक्षम नहीं किया गया है; उन्होंने ** एक उदाहरण ** के लिए कहा जहां कोई सर्वर पर दुर्भावनापूर्ण कार्य करने के लिए सुरक्षा समस्या का फायदा उठा सकता है। "कभी ऐसा नहीं करें" को दोहराते हुए उस फैमिली गाय एपिसोड में बहुत कुछ है जहां क्वाग्मिर का कहना है कि वह कॉल गर्ल के साथ जुड़ने वाला नहीं था और जो कहते हैं, "अच्छा। मत करो।" और फिर क्वाग्मियर "मैं पहले से ही यह नहीं करना है, आपको मुझे यह बताने की ज़रूरत नहीं है कि "जो जो जवाब देता है:" अच्छा, मत करो "। –

6

Django आपके डीबग पेज में सुरक्षित जानकारी को खराब करने के लिए अपनी पूरी कोशिश करता है, लेकिन यह सही नहीं है।

डिफ़ॉल्ट रूप से कोई भी सेटिंग जिसमें कुंजी (Django 1.4 शुरू करना), SECRET इत्यादि शामिल हैं, स्वचालित रूप से * के साथ प्रतिस्थापित हो जाते हैं। हालांकि अगर कोई रचनात्मक बनने का निर्णय लेता है और SECRET को SECURE_STR या जो कुछ भी कहता है, उसे सादा पाठ के रूप में प्रदर्शित किया जाएगा! क्या आप वह चाहते हैं? इसके अलावा किसी के लिए आसानी से आपके सर्वर में हैक करने के लिए यह अधिक चारा है।

+0

भयानक उदाहरण कैसे गुप्त जानकारी लीक हो सकती है। –

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