विज्ञापन

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

लेकिन जब यह अच्छा नहीं हुआ तो क्या होगा?

ठीक है, जब खतरनाक सुरक्षा समस्याएँ कम होने लगती हैं। जब आपकी साइट के ख़राब होने का खतरा हो, या आपके द्वारा लीक किया जा रहा निजी डेटा। लेकिन झल्लाहट मत करो। वेब मेजबानों के विशाल बहुमत में सुरक्षा के अच्छे उपाय हैं। यह केवल फ्लाई-बाय-नाईट, बार्गेन-बेसमेंट होस्ट है जिनसे आपको सावधान रहना होगा।

हम अनुशंसा करते हैं इनमोशन होस्टिंग की एसएसडी स्टोरेज के साथ साझा होस्टिंग.

sharedhosting-हैकर

हम साझा होस्टिंग के आसपास के सुरक्षा मुद्दों का पता लगाने जा रहे हैं। लेकिन पहले, एक साझा होस्टिंग प्लेटफ़ॉर्म को सुरक्षित बनाने के बारे में बात करते हैं।

एक सुरक्षित वेब होस्ट क्या बनाता है

कुछ स्टैंडआउट सुरक्षा विचार हैं जिन्हें साझा होस्टिंग के संबंध में किया जाना चाहिए।

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

फिर से, अधिकांश वेब होस्ट अपने साझा प्रसाद के लिए इन आवश्यकताओं को पूरा करते हैं। लेकिन अगर आप एक सर्वर पर कई वेबसाइटों की मेजबानी कर रहे हैं, या यह देखने के लिए उत्सुक हैं कि आपकी होस्टिंग कंपनी कैसे ढेर हो जाती है, या यहां तक ​​कि अपनी खुद की होस्टिंग कंपनी शुरू करने की सोच रहे हैं और अपने उपयोगकर्ताओं को सुरक्षित करने के लिए काम करने के लिए उत्सुक हैं, तो कृपया पढ़ें पर।

लेकिन पहले, एक अस्वीकरण

इससे पहले कि हम साझा होस्टिंग पर लगाए गए सामान्य हमलों को देखने के लिए मांस में उतरें, मैं बस चाहता हूं बताएं कि यह पोस्ट संभावित सुरक्षा की एक विस्तृत सूची नहीं होगी (और इसे पढ़ा नहीं जाना चाहिए) मुद्दे।

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

sharedhosting-त्याग

यदि आप अपनी सुरक्षा के बारे में पागल हैं, तो वीपीएस या समर्पित सर्वर प्राप्त करें। ये ऐसे वातावरण हैं जिनमें आपके पास (अधिकांश भाग के लिए) पूर्ण नियंत्रण है जो आगे बढ़ता है। यदि आप विभिन्न प्रकार की वेब होस्टिंग के बारे में सुनिश्चित नहीं हैं, इस पोस्ट को देखें वेबसाइट होस्टिंग के विभिन्न रूपों की व्याख्या [प्रौद्योगिकी समझाया] अधिक पढ़ें मेरे सहयोगी जेम्स ब्रूस से।

मुझे यह भी जोर देना चाहिए कि यह पोस्ट साझा होस्टिंग पर हमले के रूप में नहीं है। बल्कि, यह वेब होस्टिंग की श्रेणी के आसपास के सुरक्षा मुद्दों पर एक विशुद्ध रूप से अकादमिक दृष्टि है।

निर्देशिका ट्रैवर्सल

निर्देशिका ट्रैवर्सल (जिसे अक्सर पथ ट्रैवर्सल के रूप में जाना जाता है) हमलों के साथ शुरू होता है। इस तरह का हमला आपको उन फ़ाइलों और निर्देशिकाओं तक पहुंचने की अनुमति देता है जो वेब रूट के बाहर संग्रहीत हैं।

सादा अंग्रेजी में? खैर, आइए कल्पना करें कि ऐलिस और बॉब अपनी वेबसाइटों को होस्ट करने के लिए एक ही सर्वर का उपयोग करते हैं। ऐलिस की फ़ाइलें / var / www / alice में संग्रहीत की जाती हैं, जबकि बॉब के दस्तावेज़ / var / www / bob में पाए जा सकते हैं। इसके अलावा, इस बात का ढोंग करें कि सर्वर पर एक और फ़ोल्डर है (/ usr / crappyhosting / myfolder) यह एक अनएन्क्रिप्टेड प्लेनटेक्स्ट फ़ाइल रखता है (हम इसे pwd.txt कहेंगे) जिसमें सिस्टम उपयोगकर्ता नाम और पासवर्ड।

sharedhosting-सर्वर

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

http://example.com/file?=report.pdf

यदि मैं directory Report.pdf ’को कुछ UNIX मापदंडों से बदल देता हूं जो निर्देशिका को बदलते हैं तो क्या होगा?

http://example.com/file?=../alice/

यदि सर्वर गलत तरीके से कॉन्फ़िगर किया गया है, तो यह आपको ऐलिस के दस्तावेज़ रूट को देखने की अनुमति देगा। दिलचस्प है, लेकिन, हम उस रसदार पासपोर्ट फ़ाइल में कहीं अधिक रुचि रखते हैं। Accio पासवर्ड!

http://example.com/file?=../../../usr/crappyhosting/myfolder/pwd.txt

यह वास्तव में उतना ही आसान है। लेकिन हम इससे कैसे निपटेंगे? यह आसान है।

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

साझा-chroot

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

क्या आप अपने स्वयं के साझा होस्टिंग सर्वर का संचालन कर रहे हैं और अपने उपयोगकर्ताओं की सुरक्षा के लिए चेरोट का उपयोग नहीं कर रहे हैं? निश्चित रूप से, अपने वातावरण को काट देना कठिन हो सकता है। शुक्र है, प्लगइन्स का खजाना है जो इसे आसान बनाता है। विशेष रूप से mod_chroot पर एक नज़र डालें।

कमांड इंजेक्शन

आइए ऐलिस और बॉब पर वापस जाएं। इसलिए, हम जानते हैं कि बॉब के वेब एप्लिकेशन में कुछ... अहम... सुरक्षा मुद्दे हैं। इनमें से एक कमांड इंजेक्शन भेद्यता है, जो आपको चलाने की अनुमति देता है मनमाना सिस्टम कमांड लिनक्स कमांड लाइन के साथ आरंभ करने के लिए एक त्वरित गाइडआप लिनक्स में कमांड के साथ बहुत सारे अद्भुत सामान कर सकते हैं और यह वास्तव में सीखना मुश्किल नहीं है। अधिक पढ़ें .

बॉब की वेबसाइट आपको दूसरी वेबसाइट पर एक व्हाट्सएप क्वेरी चलाने की अनुमति देती है, जो तब ब्राउज़र में प्रदर्शित होती है। एक मानक HTML इनपुट बॉक्स है जो एक डोमेन नाम को स्वीकार करता है, और फिर व्हिसिस सिस्टम कमांड चलाता है। इस कमांड को सिस्टम () PHP कमांड को कॉल करके निष्पादित किया जाता है।

यदि किसी ने निम्नलिखित मूल्य का इनपुट किया तो क्या होगा?

example.com && cd ../alice/ && rm index.html

ठीक है, इसे तोड़ दो। यदि आप हमारे बारे में पढ़ते हैं, तो इसमें से कुछ आपसे परिचित हो सकते हैं ‘लिनक्स के लिए प्रारंभ गाइड’ लिनक्स और उबंटू के साथ शुरुआत करनाआप लिनक्स पर स्विच करने में रुचि रखते हैं... लेकिन आपको कहां से शुरु करना है? क्या आपका पीसी संगत है? क्या आपके पसंदीदा ऐप काम करेंगे? लिनक्स के साथ आरंभ करने के लिए आपको वह सब कुछ जानना होगा, जिसकी आपको आवश्यकता है। अधिक पढ़ें ई-बुक, जिसे हमने पहले 2010 में प्रकाशित किया था, या हमारे ऊपर नज़र रखी है लिनक्स कमांड लाइन धोखा शीट.

सबसे पहले, यह example.com पर whois क्वेरी चलाएगा। फिर यह वर्तमान कामकाजी निर्देशिका को ऐलिस के दस्तावेज़ रूट में बदल देगा। फिर यह remove index.html ’नामक फाइल को हटा देगा जो कि उसकी वेबसाइट का इंडेक्स पेज है। यह अच्छा नहीं है। नहीं साहब।

sharedhosting-linux

इसलिए, सिस्टम एडमिनिस्ट्रेटर के रूप में, हम इसके खिलाफ कैसे कम करते हैं? खैर, पिछले उदाहरण पर वापस जाते हुए, हम हमेशा हर उपयोगकर्ता को अपने अलग-थलग, साफ-सुथरे वातावरण में रख सकते हैं।

हम इसे भाषा के स्तर से भी देख सकते हैं। यह संभव है (हालांकि, यह चीजों को तोड़ सकता है) भाषाओं से विश्व स्तर पर समारोह घोषणाओं को हटा सकता है। यह कहना है कि, उन भाषाओं से कार्यक्षमता को हटाना संभव है जिनकी उपयोगकर्ताओं तक पहुँच है।

विशेष रूप से PHP को देखते हुए, आप भाषा की कार्यक्षमता को संशोधित करने के लिए Runkit - PHP के आधिकारिक टूलकिट के साथ कार्यक्षमता को हटा सकते हैं। वहाँ प्रलेखन का खजाना है। इसमें पढ़ें।

आप उन कार्यों को अक्षम करने के लिए PHP की कॉन्फ़िगरेशन फ़ाइल (php.ini) को भी संशोधित कर सकते हैं जो अक्सर हैकर्स द्वारा दुर्व्यवहार किए जाते हैं। ऐसा करने के लिए, अपने सर्वर पर एक टर्मिनल खोलें और एक टेक्स्ट एडिटर में अपनी php.ini फ़ाइल खोलें। मुझे VIM का उपयोग करने में मज़ा आता है, लेकिन नैनो भी स्वीकार्य है।

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

disable_functions = exec, shell_exec, system

भाषा और दुभाषिया आधारित हमले

तो, आइए PHP को देखें। यह वह भाषा है जो वेबसाइटों की एक चौंकाने वाली संख्या को शक्ति प्रदान करती है। यह कई प्रकार के आईडिओसिप्रेसस और अजीब व्यवहारों के साथ आता है। इस प्रकार सं।

PHP का उपयोग आमतौर पर Apache वेब सर्वर के साथ किया जाता है। अधिकांश भाग के लिए, इस कॉन्फ़िगरेशन के साथ भाषा के कई संस्करणों को लोड करना असंभव है।

sharedhosting-phpelephant

यह समस्या क्यों है? खैर, चलिए कल्पना करते हैं कि बॉब का वेब एप्लिकेशन मूल रूप से 2002 में बनाया गया था। बहुत समय पहले की बात है। जब मिशेल शाखा अभी भी चार्ट में शीर्ष पर थी, तो माइकल जॉर्डन वाशिंगटन विजार्ड्स के लिए खेल रहे थे और PHP एक बहुत अलग भाषा थी।

लेकिन बॉब की वेबसाइट अभी भी काम करती है! यह पूरी तरह से बंद और हटाए गए PHP फ़ंक्शन का उपयोग करता है, लेकिन यह काम करता है! PHP के एक आधुनिक संस्करण का उपयोग करने से बॉब की वेबसाइट प्रभावी रूप से टूट जाएगी, और बॉब को अपनी वेब होस्ट की पूर्णताओं को पूरा करने के लिए अपनी वेबसाइट को फिर से क्यों लिखना चाहिए?

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

परिणामस्वरूप, छोटे, स्वतंत्र होस्ट PHP के पुराने संस्करणों (या किसी भी भाषा के लिए, इस मामले के लिए) का उपयोग करने के लिए असामान्य नहीं है।

छोटे, स्वतंत्र होस्ट PHP के पुराने संस्करणों का उपयोग करना असामान्य नहीं है, संभवतः उपयोगकर्ताओं को सुरक्षा जोखिमों के लिए उजागर करना।

यह बुरी बात क्यों है? खैर, सबसे पहले, यह उपयोगकर्ताओं को कई सुरक्षा जोखिमों को उजागर करेगा। अधिकांश प्रमुख सॉफ्टवेयर पैकेजों की तरह, PHP को लगातार सुरक्षा कमजोरियों के ढेरों को संबोधित करने के लिए अद्यतन किया जा रहा है जिन्हें लगातार खोजा जा रहा है (और खुलासा)।

इसके अलावा, इसका मतलब है कि उपयोगकर्ता नवीनतम (और महानतम) भाषा कार्यों का उपयोग नहीं कर सकते हैं। इसका अर्थ यह भी है कि जिन कार्यों को किसी कारण से हटा दिया गया है, वे रहते हैं। के मामले में PHP प्रोग्रामिंग भाषा PHP के साथ निर्माण करना सीखें: एक क्रैश कोर्सPHP वह भाषा है जिसे फेसबुक और विकिपीडिया प्रतिदिन अरबों अनुरोधों की सेवा के लिए उपयोग करते हैं; लोगों को वेब प्रोग्रामिंग सिखाने के लिए इस्तेमाल की जाने वाली वास्तविक भाषा। यह खूबसूरती से सरल है, लेकिन शानदार ढंग से शक्तिशाली है। अधिक पढ़ें , इसमें शामिल हैं भयानक (और हाल ही में पदावनत) mysql_ फ़ंक्शंस जिनका उपयोग बातचीत के लिए किया जाता है MySQL रिलेशनल डेटाबेस सिस्टम और dl () के साथ, जो उपयोगकर्ताओं को अपनी भाषा आयात करने की अनुमति देता है एक्सटेंशन।

एक उपयोगकर्ता के रूप में, आपको यह देखना चाहिए कि आपकी सेवा में दुभाषिया का कौन सा संस्करण चल रहा है। यदि यह पुराना है, या कई सुरक्षा कमजोरियाँ हैं, तो अपने होस्ट से संपर्क करें।

Sysadmins के बारे में क्या? आपको यहाँ कुछ विकल्प मिले हैं। पहला (और सबसे आशाजनक) आपके प्रत्येक उपयोगकर्ता के लिए डॉकर का उपयोग करना है। डॉकर आपको कई, अलग-थलग वातावरण को समवर्ती रूप से चलाने की अनुमति देता है, एक वर्चुअल मशीन की तरह, अन्य ऑपरेटिंग सिस्टम को चलाने के बिना। नतीजतन, यह तेज है। वास्तव में, वास्तव में तेज।

सादा अंग्रेजी में? आप अपने उपयोगकर्ताओं के बहुमत के लिए नवीनतम और सबसे बड़ा ब्लीडिंग एज दुभाषिया चला सकते हैं, जबकि ग्राहक हैं जो पुराने अनुप्रयोगों का उपयोग कर रहे हैं, जो अन्य का समझौता किए बिना ऐसा करने के लिए प्राचीन, पदावनत करने वाले दुभाषियों का उपयोग करते हैं उपयोगकर्ताओं।

यह भी भाषा अज्ञेय होने का लाभ है। पीएचपी, पायथन, रूबी। जो कुछ। सभ एक ही है।

दुःस्वप्न नहीं है

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

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

एक अच्छी शुरुआत नए एचटीएमएल 5 फॉर्म सत्यापन कार्यक्षमता के साथ है। हमने अपने HTML5 गाइड में पहले इस बारे में बात की है। सामूहिक रूप से, हम बेहतर, अधिक कर्तव्यनिष्ठ प्रोग्रामर बनकर वेबसाइटों को अधिक सुरक्षित बना सकते हैं।

हमेशा की तरह, मैं आपके विचारों को सुनने के लिए तैयार हूं। मुझे नीचे एक टिप्पणी छोड़ दो

चित्र का श्रेय देना: हर कोई एक हैकर की जरूरत है (अलेक्जेंड्रे Dulaunoy), टैक्सी विंडो (स्टिकर डॉक्टरो) पर स्टिकर, सर्वर रूम (Torkild Retvedt), लिनक्स पुस्तकें और पत्रिकाएँ (Library_mistress), PHP हाथी (मार्कस टैकर)

मैथ्यू ह्यूजस लिवरपूल, इंग्लैंड के एक सॉफ्टवेयर डेवलपर और लेखक हैं। वह शायद ही कभी अपने हाथ में मजबूत काली कॉफी के कप के बिना पाया जाता है और अपने मैकबुक प्रो और अपने कैमरे को पूरी तरह से निहारता है। आप उनके ब्लॉग को पढ़ सकते हैं http://www.matthewhughes.co.uk और @matthewhughes पर ट्विटर पर उसका अनुसरण करें