2010-10-18 13 views
10

क्या यह ASP.NET में उत्पादन सर्वर पर Integrated Security=True का उपयोग करने का एक बुरा अभ्यास है?क्या मुझे उत्पादन वातावरण में 'एकीकृत सुरक्षा = सही' का उपयोग करना चाहिए?

+0

क्या यह कॉन्फ़िगरेशन फ़ाइल में कनेक्शन स्ट्रिंग के लिए है? – slugster

+0

हाँ कॉन्फ़िगरेशन फ़ाइल – user441365

उत्तर

8

नहीं - पूरी तरह से सुरक्षित *

तुम सब क्या कर रहे हैं कह रही है कि आप (आमतौर पर) Windows उपयोगकर्ता की साख है कि इस प्रक्रिया के क्रम एसक्यूएल सर्वर के साथ प्रमाणित करने में के तहत चल रहा है उपयोग करने के लिए जा रहे हैं (के रूप में विरोध किया उपयोगकर्ता नाम और पासवर्ड की आपूर्ति करने के लिए)।

वास्तव में एकीकृत सुरक्षा का उपयोग सामान्य रूप से अधिक सुरक्षित माना जाता है।

(*) बेशक यह हमेशा आपकी सटीक स्थिति पर निर्भर करता है, लेकिन सामान्य मामले में हाँ ठीक है।

+1

हम्म के लिए, क्या आपने माना है कि यह वेब सर्वर के लिए जरूरी नहीं है? यदि यह समझौता किया गया है, तो डीबेस स्टोर भी खुली है। किसी सर्वर पर पासवर्ड सुरक्षित रखना मुश्किल नहीं है, सर्वर रूम के दरवाजे पर एक ताला है। –

+2

@ हंस जब तक आप मजाक कर रहे हों, यह एक खराब तर्क है। यदि सर्वर से समझौता किया गया है तो हमलावर के पास एसक्यूएल आधारित कनेक्शन यू/पी तक पहुंच होगी, इसलिए यह एकीकृत से बेहतर नहीं है। दोनों मामलों में हमलावर डीबी तक पहुंचने के लिए उस स्थिति से कितनी आसानी से प्राप्त कर सकता है और वे कितना कर सकते हैं विशिष्ट कॉन्फ़िगरेशन पर भिन्न होंगे। यदि आप वास्तव में उस परिदृश्य के खिलाफ सुरक्षा करना चाहते हैं तो आपके पास वेब सर्वर सीधे डीबी को मारने वाला नहीं होगा। – eglasius

+0

@ एग्लासियस - नहीं, एक स्माइली का उपयोग नहीं किया। आप इस धारणा से काम करते हैं कि हमलावर मौजूदा कनेक्शन का उपयोग करेगा। एकीकृत सुरक्षा चालू होने पर यह * कठिन * तरीका कर रहा है। वह सिर्फ अपना कनेक्शन बना सकता है, उपयोगकर्ता नाम + पासवर्ड अनुमान लगाने में मुश्किल नहीं है। –

1

यह आईआईएस वेब एप्लिकेशन चलाने के लिए उपयोग किए जा रहे खाते के आधार पर एक अच्छी बात या बुरी चीज हो सकती है।

किसी भी मामले में, SQL उपयोगकर्ता आईडी और पासवर्ड कनेक्शन स्ट्रिंग में प्रकट नहीं होता है; हमेशा एक अच्छी बात है।

हालांकि, आपको अपने उत्पादन वातावरण को ध्यान से स्थापित करने की आवश्यकता है। मैं सुझाव दूंगा कि आप आईआईएस के लिए वेब एप्लिकेशन चलाने के लिए उपयोग करने के लिए एक अलग उपयोगकर्ता खाता बनाएं। उस उपयोगकर्ता खाते को आपके एप्लिकेशन द्वारा आवश्यक SQL संसाधनों तक पहुंच प्राप्त करने के लिए कॉन्फ़िगर किया जा सकता है। यह आपके वेब एप्लिकेशन की सुरक्षा से समझौता होने की स्थिति में अन्य अनुप्रयोगों से आसानी से समझौता करने से आपकी रक्षा करेगा।

मैं कहाँ प्रयोक्ता आईडी और पासवर्ड के साथ एक एसक्यूएल कनेक्शन स्ट्रिंग :-)

+1

एक्रोबेटिक्स? एन्क्रिप्टेड एसक्यूएल कनेक्शन स्ट्रिंग के लिए समर्थन में बनाया गया है। यह विशेष रूप से मुश्किल नहीं है। – Brian

+1

@ ब्रायन - अकेले कनेक्शन स्ट्रिंग को एन्क्रिप्ट करने के बजाय SQL खाते की अनुमतियों को लॉक करना कहीं बेहतर है। मैं एसक्यूएल एक्सेस के 100% के लिए संग्रहीत प्रक्रियाओं का उपयोग करना पसंद करता हूं और केवल उपयोगकर्ता को निष्पादित अनुमति की अनुमति देता हूं। इस तरह अगर किसी हमलावर के पास पासवर्ड होता है, तो वह एप्लिकेशन के मुकाबले कुछ भी कर सकता है। हालांकि, SQL अनुमतियों और एक एन्क्रिप्टेड कनेक्शन स्ट्रिंग दोनों का उपयोग करना सबसे अच्छा विकल्प होगा। – NightOwl888

+0

@ NightOwl888 - मैं मानता हूं कि कई सावधानी बरतना अच्छा अभ्यास है। [कैसे करें: डेटा स्रोत नियंत्रणों का उपयोग करते समय सुरक्षित कनेक्शन स्ट्रिंग] (https://msdn.microsoft.com/en-us/library/ms178372.aspx) – myidealab

1

उत्तर शीर्षक सवाल का एक एन्क्रिप्टेड संसाधन से रन-टाइम में भरी हुई है कलाबाजी कर प्रोग्रामर के बारे में सुना है:
आप चाहिए उत्पादन के माहौल में कुछ भी छूएं (कम उपयोग) नहीं, जबकि आपके पास ऐसे प्रश्न या संदेह हैं!

शरीर प्रश्न के उत्तर:
उत्पादन में एसक्यूएल सर्वर पर सभी

अद्यतन SQL सर्वर प्रमाणीकरण के लिए सक्षम नहीं किया जाना चाहिए:
मैं देखना चाहता है कि सभी उत्तर संभाव्य का उपयोग हैरान हूं "इस पर निर्भर करता है", "में कुछ मामलों "," अधिक "संभावनाएं।

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