security - वेबसाइट के व्यवस्थापक अनुभाग को सुरक्षित करने के लिए सर्वोत्तम प्रथाएं क्या हैं?




authentication (8)

मैं जानना चाहता हूं कि वेबसाइटों के व्यवस्थापक अनुभागों को सुरक्षित करने के लिए लोग सबसे अच्छा अभ्यास क्यों करते हैं, खासकर प्रमाणीकरण / पहुंच बिंदु से।

निस्संदेह स्पष्ट चीजें हैं, जैसे एसएसएल का उपयोग करना और सभी एक्सेस लॉगिंग करना, लेकिन मैं सोच रहा हूं कि इन बुनियादी चरणों के ऊपर लोग बार को कब सेट करते हैं।

उदाहरण के लिए:

  • क्या आप केवल उसी प्रमाणीकरण तंत्र पर भरोसा कर रहे हैं जिसका उपयोग आप सामान्य उपयोगकर्ताओं के लिए करते हैं? यदि नहीं, तो क्या?
  • क्या आप एक ही 'एप्लिकेशन डोमेन' में व्यवस्थापक अनुभाग चला रहे हैं?
  • व्यवस्थापक अनुभाग को अनदेखा करने के लिए आप क्या कदम उठाते हैं? (या आप पूरी 'अस्पष्टता' चीज़ को अस्वीकार करते हैं)

अब तक, उत्तरदाताओं के सुझावों में शामिल हैं:

  • ब्रूट फोर्स हमलों को रोकने के लिए प्रत्येक व्यवस्थापक पासवर्ड चेक में एक कृत्रिम सर्वर-साइड विराम का परिचय दें [डेवलपर आर्ट]
  • एक ही डीबी तालिका का उपयोग कर उपयोगकर्ताओं और व्यवस्थापक के लिए अलग लॉगिन पेज का उपयोग करें (एक्सएसआरएफ को रोकने के लिए और सत्र-चोरी प्रशासन क्षेत्रों तक पहुंच प्रदान करने के लिए) [चोर मास्टर]
  • व्यवस्थापक क्षेत्र में वेबसर्वर मूल प्रमाणीकरण जोड़ने पर भी विचार करें (उदाहरण के लिए .htaccess के माध्यम से) [चोर मास्टर]
  • असफल व्यवस्थापक लॉगिन प्रयासों के बाद उपयोगकर्ता आईपी को अवरुद्ध करने पर विचार करें [चोर मास्टर]
  • असफल व्यवस्थापक लॉगिन प्रयासों के बाद कैप्चा जोड़ें [चोर मास्टर]
  • उपयोगकर्ताओं के साथ-साथ व्यवस्थापक के लिए समान रूप से मजबूत तंत्र (उपर्युक्त तकनीकों का उपयोग करके) प्रदान करें (उदाहरण के लिए विशेष रूप से व्यवस्थापक का इलाज न करें) [Lo'oris]
  • द्वितीय स्तर प्रमाणीकरण पर विचार करें (जैसे क्लाइंट प्रमाण पत्र, स्मार्ट कार्ड, कार्डस्पेस, आदि) [जोगीकी]
  • केवल विश्वसनीय आईपी / डोमेन से पहुंच की अनुमति दें, यदि संभव हो तो मूल HTTP पाइपलाइन (जैसे HttpModules के माध्यम से) में चेक जोड़ें। [JoeGeeky]
  • [एएसपी.नेट] आईप्रिनिपियर और प्रिंसिपल को लॉक करें (उन्हें अपरिवर्तनीय और गैर-गणनीय बनाएं ) [जोजीकी]
  • संघीय अधिकार ऊंचाई - उदाहरण के लिए जब किसी भी व्यवस्थापक के अधिकारों को अपग्रेड किया जाता है तो अन्य व्यवस्थापक को ईमेल करें। [JoeGeeky]
  • व्यवस्थापक के लिए बढ़िया अधिकारों पर विचार करें - उदाहरण के लिए भूमिकाओं के आधार पर अधिकार, प्रति व्यवस्थापक के लिए प्रासंगिक कार्यों के अधिकारों को परिभाषित करें [जोजीकी]
  • व्यवस्थापक के निर्माण को प्रतिबंधित करें - उदाहरण के लिए व्यवस्थापक अन्य व्यवस्थापक खातों को बदल या बना नहीं सकते हैं। इसके लिए लॉक-डाउन 'सुपरडमिन' क्लाइंट का उपयोग करें। [JoeGeeky]
  • क्लाइंट साइड एसएसएल सर्टिफिकेट्स, या आरएसए टाइप कीफब्स (इलेक्ट्रॉनिक टोकन) पर विचार करें [डैनियल पापैसियन]
  • यदि प्रमाणीकरण के लिए कुकीज़ का उपयोग करते हैं, तो व्यवस्थापक और सामान्य पृष्ठों के लिए अलग-अलग कुकीज़ का उपयोग करें, उदाहरण के लिए व्यवस्थापक अनुभाग को किसी भिन्न डोमेन पर डालें। [डैनियल पापसियन]
  • यदि व्यावहारिक है, तो सार्वजनिक इंटरनेट से, एक निजी सबनेट पर व्यवस्थापक साइट को रखने पर विचार करें। [जॉन हार्ट्सकॉक]
  • वेबसाइट के व्यवस्थापक / सामान्य उपयोग संदर्भों के बीच चलते समय ऑथ / सत्र टिकट पुन: जारी करें [रिचर्ड जेपी ले गुएन]

एक अच्छा व्यवस्थापक पासवर्ड है।

"123456" बल्कि अक्षरों, अंकों और विशेष वर्णों का अनुक्रम काफी लंबा है, कहें, 15-20 वर्ण। "ksd83,'|4d#rrpp0%27&lq(go43$sd{3>"

ब्रूट फोर्स अटैक को रोकने के लिए प्रत्येक पासवर्ड जांच के लिए एक विराम जोड़ें।


एक पासवर्ड फ़ील्ड और एक सुरक्षा प्रश्न जोड़ें जो प्रशासक को पता चलेगा, उदाहरण के लिए आपकी पहली प्रेमिका नाम क्या थी, या व्यवस्थापक पैनल को हर बार प्रश्नों को यादृच्छिक बनाएं।

शायद आप प्रशासन अनुभाग को एक बड़ी निर्देशिका में डाल सकते हैं, उदाहरण के लिए

http://domain.com/sub/sub/sub/sub/sub/index.php

लेकिन यह वास्तव में अच्छा नहीं है।

शायद आप होम पेज में एक क्वेरी स्ट्रिंग शामिल कर सकते हैं, जैसे:

http://domain.com/index.php?display=true

जब ऐसा होता है, तो उपयोगकर्ता नाम और पासवर्ड फ़ील्ड दिखाई देगा।


यदि आप उन उपयोगकर्ताओं के लिए केवल एक ही लॉगिन का उपयोग करते हैं जिनके पास सामान्य उपयोगकर्ता विशेषाधिकार और व्यवस्थापक विशेषाधिकार दोनों हैं, तो उनके सत्र पहचानकर्ता को पुन: उत्पन्न करें (इसे कुकी या जीईटी पैरामीटर या जो भी हो ...) के स्तर में परिवर्तन होने पर निजीकरण ... कम से कम।

इसलिए यदि मैं लॉग इन करता हूं, तो सामान्य उपयोगकर्ता सामग्री का एक गुच्छा करें और फिर एक व्यवस्थापक पृष्ठ पर जाएं, मेरी सत्र आईडी पुन: उत्पन्न करें। यदि मैं फिर किसी व्यवस्थापक पृष्ठ से सामान्य उपयोगकर्ता पृष्ठ पर नेविगेट करता हूं, तो फिर से मेरी आईडी पुन: उत्पन्न करें।


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

इसके अतिरिक्त, यदि व्यवस्थापक अनुभाग एक अलग उपनिर्देशिका में है, तो वेबसर्वर प्रमाणीकरण (उदाहरण के लिए अपाचे में .htaccess) को सुरक्षित करना एक अच्छा विचार हो सकता है - तो किसी को उस पासवर्ड और उपयोगकर्ता पासवर्ड दोनों की आवश्यकता होती है।

व्यवस्थापक पथ को अस्पष्ट करने से लगभग कोई सुरक्षा लाभ नहीं मिलता है - अगर कोई वैध लॉगिन डेटा जानता है तो वह शायद व्यवस्थापक टूल के पथ को खोजने में सक्षम है क्योंकि उसने या तो इसे फ़िश किया है या आपको कुंजीबटल किया है या इसे सोशल इंजीनियरिंग के माध्यम से प्राप्त किया है (जो शायद यह प्रकट करेगा रास्ता भी)।

एक असफल लॉगिन के बाद उपयोगकर्ता के आईपी को अवरुद्ध करने की तरह एक ब्रूट-बल सुरक्षा या असफल लॉगिन के बाद कैप्चा की आवश्यकता होती है (पहले लॉगिन के लिए नहीं, क्योंकि यह कानूनी उपयोगकर्ताओं के लिए बेहद परेशान है) भी उपयोगी हो सकता है।


ये सभी अच्छे जवाब हैं ... मैं आमतौर पर अपने प्रशासनिक वर्गों के लिए कुछ अतिरिक्त परत जोड़ना पसंद करता हूं। हालांकि मैंने थीम पर कुछ बदलावों का उपयोग किया है, लेकिन वे आम तौर पर निम्नलिखित में से एक को शामिल करते हैं:

  • द्वितीय स्तर प्रमाणीकरण : इसमें क्लाइंट प्रमाणपत्र (उदा। X50 9 certs), स्मार्ट कार्ड, कार्डस्पेस इत्यादि शामिल हो सकते हैं ...
  • डोमेन / आईपी प्रतिबंध : इस मामले में, केवल विश्वसनीय / सत्यापन योग्य डोमेन से आने वाले ग्राहक; जैसे आंतरिक सबनेट्स; व्यवस्थापक क्षेत्र में अनुमति दी जाती है। रिमोट व्यवस्थापक अक्सर विश्वसनीय वीपीएन एंट्रीपॉइंट्स के माध्यम से जाते हैं, इसलिए उनका सत्र सत्यापित होगा और अक्सर आरएसए कुंजी के साथ भी संरक्षित किया जाता है। यदि आप एएसपी.नेट का उपयोग कर रहे हैं तो आप एचटीटीपी पाइपलाइन में एचटीटीपी मॉड्यूल के माध्यम से आसानी से इन चेक को निष्पादित कर सकते हैं जो सुरक्षा जांच संतुष्ट नहीं होने पर आपके आवेदन को कभी भी कोई अनुरोध प्राप्त करने से रोक देगा।
  • आधिकारिक और प्रिंसिपल आधारित प्राधिकरण को बंद कर दिया : कस्टम सिद्धांत बनाना एक आम प्रथा है, हालांकि एक आम गलती उन्हें संशोधित और / या अधिकारों को गिनती कर रही है। यद्यपि यह सिर्फ एक व्यवस्थापक मुद्दा नहीं है, यह यहां अधिक महत्वपूर्ण है क्योंकि यहां उपयोगकर्ताओं को उच्च अधिकार होने की संभावना है। सुनिश्चित करें कि वे अपरिवर्तनीय हैं और गणना योग्य नहीं हैं। इसके अतिरिक्त, सुनिश्चित करें कि प्राधिकरण के लिए सभी आकलन प्रिंसिपल के आधार पर किए जाते हैं।
  • संघीय अधिकार ऊंचाई : जब किसी भी खाते को चुनिंदा अधिकार प्राप्त होते हैं, तो सभी व्यवस्थापक और सुरक्षा अधिकारी को तुरंत ईमेल के माध्यम से अधिसूचित किया जाता है। यह सुनिश्चित करता है कि यदि कोई हमलावर अधिकारों को बढ़ाता है तो हम तुरंत जानते हैं। ये अधिकार आमतौर पर निजीकृत अधिकारों, गोपनीयता संरक्षित जानकारी देखने के अधिकार, और / या वित्तीय जानकारी (जैसे क्रेडिट कार्ड) के आसपास घूमते हैं।
  • प्रशासन के अधिकारों के मुकाबले अंक कम हो रहे हैं : अंत में, और यह कुछ दुकानों के लिए थोड़ा और उन्नत हो सकता है। प्रमाणीकरण अधिकार यथासंभव बुद्धिमान होना चाहिए और वास्तविक कार्यात्मक व्यवहार को घेरे रखना चाहिए। विशिष्ट भूमिका-आधारित सुरक्षा (आरबीएस) दृष्टिकोण समूह की मानसिकता रखते हैं। एक सुरक्षा परिप्रेक्ष्य से यह सबसे अच्छा पैटर्न नहीं है। ' उपयोगकर्ता प्रबंधक ' जैसे ' समूह ' के बजाय, इसे आगे तोड़ने का प्रयास करें ( उदा। उपयोगकर्ता बनाएं, उपयोगकर्ता को अधिकृत करें, एक्सेस अधिकारों को बढ़ाएं / रद्द करें, आदि ... )। प्रशासन के मामले में इसका थोड़ा अधिक ओवरहेड हो सकता है, लेकिन इससे आपको केवल उन अधिकारों को असाइन करने की सुविधा मिलती है जिन्हें वास्तव में बड़े व्यवस्थापक समूह द्वारा आवश्यक होता है। यदि कम से कम समझौता किया गया है तो उन्हें सभी अधिकार नहीं मिल सकते हैं। मैं इसे .NET और Java द्वारा समर्थित कोड एक्सेस सिक्योरिटी (सीएएस) अनुमतियों में लपेटना पसंद करता हूं, लेकिन यह इस उत्तर के दायरे से बाहर है। एक और बात ... एक ऐप में, व्यवस्थापक अन्य व्यवस्थापक खातों में परिवर्तन का प्रबंधन नहीं कर सकते हैं, या उपयोगकर्ताओं को एक व्यवस्थापक बना सकते हैं। यह केवल लॉक डाउन क्लाइंट के माध्यम से किया जा सकता है जो केवल कुछ लोग ही पहुंच सकते हैं।

विचार करने के लिए कुछ अन्य चीजें यहां दी गई हैं:

  1. विचार करने का एक विकल्प, विशेष रूप से यदि आप व्यवस्थापक के कंप्यूटर का प्रबंधन करते हैं या वे तकनीकी रूप से सक्षम हैं, तो क्लाइंट प्रमाणीकरण के लिए SSL प्रमाणपत्रों के आधार पर कुछ उपयोग करना है। अतिरिक्त सुरक्षा के लिए आरएसए keyfobs और whatnot भी इस्तेमाल किया जा सकता है।
  2. यदि आप कुकीज़ का उपयोग कर रहे हैं - शायद प्रमाणीकरण / सत्र टोकन के लिए - शायद आप यह सुनिश्चित करना चाहते हैं कि कुकीज़ केवल व्यवस्थापक पृष्ठों पर भेजी जाए। इससे परत 1/2 समझौता या एक्सएसएस द्वारा कुकीज़ चोरी करके आपकी साइट पर आने वाले जोखिमों को कम करने में मदद मिलती है। यह व्यवस्थापक भाग को किसी भिन्न होस्टनाम या डोमेन पर होने के साथ-साथ कुकी के साथ सुरक्षित ध्वज सेट करके आसानी से किया जा सकता है।
  3. आईपी ​​द्वारा प्रतिबंधित करना भी स्मार्ट हो सकता है, और यदि आपके पास इंटरनेट पर उपयोगकर्ता हैं तो आप अभी भी ऐसा कर सकते हैं, अगर कोई भरोसेमंद वीपीएन है जिसमें वे शामिल हो सकते हैं।

हम व्यवस्थापक पहुंच के लिए Windows Authentication उपयोग करते हैं। यह सामान्य अंत उपयोगकर्ताओं पर लागू होने वाले प्रमाणीकरण को अलग रखते हुए व्यवस्थापक क्षेत्रों की सुरक्षा का सबसे व्यावहारिक तरीका है। सिस्टम व्यवस्थापक व्यवस्थापक उपयोगकर्ता पहुंच प्रमाण-पत्र प्रबंधित करता है और डोमेन उपयोगकर्ता खाते पर पासवर्ड नीतियों को लागू करता है।


  • मैंने अस्पष्टता को खारिज कर दिया
  • एक के बजाय दो प्रमाणीकरण प्रणालियों का उपयोग करना अधिक है
  • प्रयासों के बीच कृत्रिम विराम भी उपयोगकर्ताओं के लिए किया जाना चाहिए
  • विफल प्रयासों के अवरुद्ध आईपी भी उपयोगकर्ताओं के लिए किया जाना चाहिए
  • उपयोगकर्ताओं द्वारा भी मजबूत पासवर्ड का उपयोग किया जाना चाहिए
  • यदि आप कैप्चास को ठीक मानते हैं, तो अनुमान लगाएं, आप उन्हें उपयोगकर्ताओं के लिए भी उपयोग कर सकते हैं

हां, इसे लिखने के बाद, मुझे एहसास हुआ कि इस उत्तर को "व्यवस्थापक लॉगिन के लिए विशेष कुछ भी नहीं" के रूप में सारांशित किया जा सकता है, वे सभी सुरक्षा सुविधाएं हैं जिनका उपयोग किसी भी लॉगिन के लिए किया जाना चाहिए "।





authentication