2012-05-04 4 views
5

कुछ साल पहले, मुझे याद है कि मैंने एक डोमेन स्थिति के तहत एक से अधिक साइट के साथ संघर्ष किया, जहां रूट में से एक साइट को रखा गया था। (बच्चे परियोजनाओं में विरोधी संदर्भ undeclare के लिए मजबूरआईआईएस में किसी डोमेन की रूट पर मुझे अपनी एएसपीनेट वेबसाइट या वेबपैप क्यों नहीं तैनात करनी चाहिए?

समय मैं एक आधिकारिक पद है कि स्पष्ट रूप से मुझे समझाया क्यों इस एक बुरा विचार था पढ़ा है, क्या मुझे याद है व्यापक web.config मुख्य कारण किया जा रहा है मुद्दा है जो अनिवार्य रूप से उस परियोजना के लिए विदेशी हैं)। इसके बाद से मैंने डिफ़ॉल्ट वेबसाइट पर इंगित करने के लिए रूट में एक ही रीडायरेक्ट का उपयोग करके, किसी भी वेबसाइट को अपने स्वयं के वर्चुअल पथ में हमेशा तैनात किया है।

मुझे अब उस आधिकारिक संदर्भ को प्रतीत नहीं होता है और तब से तैनाती के विचार बदल सकते हैं।

इस परिदृश्य के लिए विपक्ष और अधिक संभावनाएं क्या हैं? मैं पूछ रहा हूं क्योंकि एक कंपनी जो मैं इस तरह से तैनाती को अलग करने के लिए frowns के साथ काम करता हूं और मुझे नहीं लगता कि यह एक अच्छा विचार है।

उत्तर

2

संक्षिप्त उत्तर: अलगाव। अलग-अलग वेब साइट/वेब अनुप्रयोगों को अलग किए बिना आईएमओ लाभ अलग-अलग हैं।

लांग जवाब:

सकारात्मक:

  • विशिष्ट बाइंडिंग के बिना एक बंदरगाह का उपयोग करते हुए (यानी उपनाम।): यदि आप वेबसाइट बाइंडिंग के लिए उपयोग नहीं है, तो, अपने उपयोगी
  • रैपिड-परिनियोजन और गतिशील वेब साइट निर्माण: आप आईआईएस पक्ष
  • साझाकरण सेटिंग: एपीआई पर घोषित किए बिना एक नया सबसाइट बना सकते हैं। सभी सबसाइट को प्लाई वेब साइट आधार सेटिंग्स (दस्तावेज, माइम प्रकार आदि ...)

विपक्ष:

  • आवेदन पूल अलगाव: कोई पहचान नहीं अलगाव, कोई वर्कर प्रोसेस अलगाव, कोई विफलता/वसूली अलगाव, आदि ... (समय बाहर, स्मृति सीमा आदि ...)

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

  • (यानी अगर आप एक AppDomain web.config स्पर्श करें।)

    आर्किटेक्चर अलगाव: कुछ वेब अनुप्रयोग विकास को आईआईएस पक्ष पर ट्यूनिंग करने के लिए कुछ की आवश्यकता है, यदि आप अपने आईआईएस पूल या वेबसाइट को सिर्फ एक ऐप के लिए ट्यून करते हैं, तो यह सभी साइटों के लिए एक प्रभाव है। मुझे उदाहरण के लिए 32-बिट्स और 64-बिट्स सेटिंग या वाइल्डकार्ड मैपिंग के बारे में लगता है।

  • कोड और सुरक्षा अलगाव: आवेदन एक ही कार्यकर्ता प्रक्रिया और/या AppDomain में चल कम पार एप्लिकेशन का उपयोग/हैक्स/हमलों के खिलाफ सुरक्षित है। आपको यह सुनिश्चित करने के लिए और अधिक सतर्क रहना होगा कि किसी ऐप से सूचनाएं किसी अन्य द्वारा नहीं पढ़ी जा सकें।

  • ऑडिट: वेब साइट गतिविधि और विफलता का ऑडिट करना अधिक कठिन हो सकता है।

वेब अनुप्रयोग अलगाव हमेशा एक दूसरे से अनुप्रयोगों की रक्षा के लिए पारस्परिक वातावरण पर एक लक्ष्य रहा है।

आईआईएस 7 के बाद से, अनुप्रयोग पूल अलगाव "अनुप्रयोग पूल पहचान" के साथ आगे जाना: http://www.adopenstatic.com/cs/blogs/ken/archive/2008/01/29/15759.aspx

मैं भी इस लेख पाया: http://searchsecurity.techtarget.com/tip/Web-application-isolation

आपको SharePoint साइट संग्रह आर्किटेक्चर को भी देखना चाहिए। यहां विचार है: http://blogs.msdn.com/b/sgoodyear/archive/2011/11/18/9848865.aspx

+0

व्यापक लेखन के लिए धन्यवाद। एस गुडिययर के लिंक में उन्होंने यह कहते हुए निष्कर्ष निकाला कि "याद रखें, वर्चुअल स्ट्रक्चर और साइट वर्गीकरण (निर्देशिका) कुछ भी हो सकता है, क्योंकि वे सामग्री को इंगित करने वाले हाइपरलिंक हैं। लिंक करते समय भौतिक संरचना निर्णय लेने से बचें!" _, जो मुझे लगता है कि मामले में एक उत्कृष्ट बिंदु है। – Abel

1

एक डोमेन के तहत कई "साइटों" को होस्ट करने के लिए मुख्य प्रतिबिंब (और आईआईएस में एक "वेबसाइट" के रूप में) मैं सोच सकता हूं कि उपयोगकर्ता पहचान अलगाव होगा; जब आप कॉन्फ़िगर करते हैं तो/site2 में लॉग इन करने वाले विज़िटर को/site2 में भी लॉग इन किया जाएगा। विंडोज प्रमाणीकरण और यह ऐसा कुछ है जिसे आप नहीं चाहते हैं।

डोमेन स्तर पर कुकीज़ सेट के लिए समान रूप से लागू होता है। आईआईएस में एक वेबसाइट एक सुरक्षा सीमा है (क्लाइंट के लिए भी) और एक ही डोमेन में कई "साइटें" आपको सुरक्षा भेद्यता के लिए खोल सकती हैं ...

रूट में एक "साइट" रखने के लिए और उपफोल्डर में अन्य; "रूट साइट" के लिए सेट की गई आपकी एप्सेटिंग "सबफ़ोल्डर साइट्स" पर कैस्केड होगी; फिर यह एक गैर-मुद्दा हो सकता है लेकिन यह एक संभावित सुरक्षा दोष है।

+0

सुरक्षा समस्याओं को इंगित करने के लिए धन्यवाद। मैंने (अभी तक स्पष्ट) पथ या डोमेन कुकीज़ के बारे में नहीं सोचा था। क्या प्रमाणीकरण प्रति पथ अलग है और बाल डीआईआर के लिए कैस्केडिंग है, या यह केवल डोमेन प्रति अलग है? हम एक कस्टम प्रमाणीकरण हैंडलर का उपयोग करते हैं, इसलिए वर्तमान परिदृश्य में इससे कोई फर्क नहीं पड़ता। – Abel

+1

प्रमाणीकरण (मूल + विंडोज़) आमतौर पर साइट-व्यापी है लेकिन प्रमाणीकरण को कैस्केडिंग तरीके से कॉन्फ़िगर किया जा सकता है। प्रपत्र प्रमाणीकरण कुकी-चालित सुझाव है कि इसे बनाया जा सकता है ताकि अलग-अलग सबफ़ोल्डर एक ही समय में उपयोगकर्ताओं में अलग-अलग लॉग इन कर सकें। आपका कस्टम हैंडलर विज़िटर पहचान कहां रखता है? यदि यह कुकी संचालित है तो आपको केवल एक ही सबसाइट के लिए मान्य होने के लिए अपनी कुकीज़ को सेट करना सुनिश्चित करना चाहिए ... –

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