6

हम हमारी साइट्स में से एक को ASP.Net में माइग्रेट कर रहे हैं। हम एकीकृत सुरक्षा का उपयोग नहीं करना चाहते हैं, जो एसक्यूएल सर्वर से कनेक्ट करने के लिए विंडोज़ खाते का उपयोग करता है (क्यों नहीं जा रहा है, यह सिर्फ सवाल से बाहर है)। हमने SQL सर्वर से कनेक्ट करने के लिए उपयोगकर्ता नाम और पासवर्ड बनाया है, और उस उपयोगकर्ता नाम और पासवर्ड का उपयोग करना चाहते हैं, हालांकि, हम नहीं चाहते कि अन्य डेवलपर इस जानकारी को देख सकें (आसानी से web.config से पढ़ें) .... मुझे पता है इसे एन्क्रिप्ट किया जा सकता है, लेकिन यह डेवलपर्स द्वारा आसानी से डिक्रिप्ट किया जा सकता है - प्लस एन्क्रिप्शन में प्रदर्शन हिट होता है।.NET SQL सर्वर कनेक्शन स्ट्रिंग - अन्य डेवलपर्स से पासवर्ड छुपाएं

क्या इस समस्या का कोई समाधान है?

उत्तर

2

यहाँ Encrypting Configuration Information in ASP.NET 2.0 Applications

पर एक अच्छा ट्यूटोरियल बस अन्य डेवलपर्स कुंजी

वैकल्पिक रूप से देना नहीं है आप स्थापित प्रमाण पत्र के माध्यम से एसक्यूएल के लिए प्रमाणीकरण को लॉक कर सकते है,। इस तरह आप ग्राहक के आधार पर सुरक्षा स्थापित कर रहे हैं उपयोगकर्ता नहीं। http://msdn.microsoft.com/en-us/library/ff649255.aspx

हमारा मानक अभ्यास विकास डेटाबेस में उपयोग किया जाने वाला एक "डेवलपर लॉगिन" होना है जिसमें सीमित पहुंच है और उत्पादन बॉक्स के लिए एक अलग उपयोगकर्ता नाम/पासवर्ड है। डेवलपर्स के पास उत्पादन बॉक्स तक पहुंच नहीं है, केवल लीड डेवलपर्स हैं, और उसके बाद उत्पादन web.config को तैनाती स्क्रिप्ट के माध्यम से कॉपी किया गया है।

+1

यह मेरी और आपकी टिप्पणियों पर लागू होता है क्योंकि मैंने कभी web.config फ़ाइल को एन्क्रिप्ट नहीं किया है। लेकिन आपके लिंक को पढ़ने के बाद, क्या एक dev को ऑब्जेक्ट को सेट करने से रोकता है (dim sqlConn new sqlconnection (getConfigSection), IIS ऑटो डिक्रिप्ट्स) और फिर स्ट्रिंग वेरिएबल = object.connectionString सेट करना? या उस जानकारी को चरण-दर-चरण डीबगिंग करने के लिए डीबगर का उपयोग करना? – Tommy

+0

आपको वर्कस्टेशन या प्रमाणपत्र से प्रमाणित करना होगा, क्योंकि सभी डेवलपर्स को डीबगर तक पहुंच होगी – Glennular

0

क्या डेवलपर्स को web.config फ़ाइल तक पहुंच की आवश्यकता है? यदि ऐसा है, तो मुझे लगता है कि आप भाग्य से बाहर हो सकते हैं। यदि नहीं, तो इसका अर्थ है कि उन्हें कभी भी web.config फ़ाइल को बदलने की आवश्यकता नहीं है, इस पर अनुमतियां बदलें ताकि केवल व्यवस्थापक और एएसपीनेट प्रक्रिया फ़ाइल को पढ़ सके।

0

मेरे अनुभव में, आपके आंतरिक देवताओं से उस तरह की चीज को छिपाना मुश्किल हो जाता है। वेब कॉन्फिग में कॉन्फ़िगर इन्फ्रूमेशन को एन्क्रिप्ट करने से भी यह पता चलता है कि क्या आपके डेवलपर्स ने कोड के माध्यम से कदम उठाया है ...

मुझे लगता है कि, यदि आपको ऐसा करना है, तो आप अपने लिए कोड में एक निजी निरंतर स्ट्रिंग बना सकते हैं डीबी स्ट्रिंग और फिर डॉटफुस्केटर या संकलित अनुप्रयोग के समान उपयोग करें। जाहिर है, स्रोत कोड को भी एन्क्रिप्ट किया जाना चाहिए या आपके डेवलपर्स को अन्यथा इसे एक्सेस करने से रोका जाना चाहिए।

0

आप वास्तव में डेवलपर्स से पासवर्ड की रक्षा नहीं कर सकते - इसके अलावा, यह क्या अर्थ है? आप क्या कर सकते हैं अलग विकास सर्वर है जिसके लिए डेवलपर्स के पास पहुंच और उत्पादन वातावरण है, जिसके लिए वे नहीं करते हैं।

डेवलपर्स को कुछ परीक्षण या कुछ चलाने के लिए सीधे डेटाबेस पर लॉग ऑन करने की आवश्यकता नहीं है? यदि वे करते हैं, तो आवेदन द्वारा उपयोग किए जाने वाले उसी खाते का उपयोग करके परीक्षण करना समझदारी होगी, अन्यथा परीक्षा परिणाम वास्तविकता को प्रतिबिंबित नहीं कर सकते हैं।

0

prompt for the password, जब आप पहली बार कनेक्ट होते हैं और सत्र में पासवर्ड को ट्रैक करते हैं। अब केवल आप डेटाबेस से कहीं भी कनेक्ट करने में सक्षम होंगे। उन सभी को एप्लिकेशन-अनुपलब्ध पृष्ठ पर उन सभी उपयोगकर्ताओं को रीडायरेक्ट करें जिनके पास पासवर्ड नहीं है।