क्रॉस-साइट स्क्रिप्टिंग (XSS) एक प्रकार का सुरक्षा शोषण है जो हमलावरों को क्लाइंट कोड का उपयोग करके वेबसाइटों पर दुर्भावनापूर्ण स्क्रिप्ट को इंजेक्ट करने की अनुमति देता है। यह एक महत्वपूर्ण खतरा है क्योंकि हमलावर इसका उपयोग उपयोगकर्ताओं को प्रतिरूपित करने, संवेदनशील डेटा तक पहुंच प्राप्त करने या यहां तक ​​कि वेबसाइट की पृष्ठ सामग्री को बदलने के लिए कर सकते हैं।

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

क्रॉस-साइट स्क्रिप्टिंग कैसे काम करती है?

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

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

instagram viewer

तीन प्रकार के होते हैं क्रॉस-साइट स्क्रिप्टिंग जिसका उपयोग हैकर वेबसाइटों को तोड़ने के लिए करते हैं: प्रतिबिंबित, संग्रहीत, और डोम एक्सएसएस।

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

नोड में क्रॉस-साइट स्क्रिप्टिंग को रोकने के लिए आप निम्नलिखित कुछ कदम उठा सकते हैं।

इनपुट को सेनिटाइज करें

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

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

आयात सत्यापनकर्ता से "सत्यापनकर्ता";
उपयोगकर्ता इनपुट = `जेन. दें <स्क्रिप्ट अधिभार ="चेतावनी('एक्सएसएस हैक');"></script>`;
होने देना sanitizedInput =Validator.escape (userInput);

यदि आप उपरोक्त कोड को चलाते हैं, तो sanitized आउटपुट यह होगा।

जेन &लेफ्टिनेंट; स्क्रिप्ट अधिभार =&उद्धरण; चेतावनी(&#x27;एक्सएसएस हैक&#x27;);&उद्धरण;&जीटी;&लेफ्टिनेंट;&#x2F; लिखी हुई कहानी&जीटी;

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

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

HTTP केवल कुकी नीति लागू करें

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

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

यहां एक उदाहरण दिया गया है कि आप एक्सप्रेस का उपयोग करके Node.js में केवल-HTTP कुकी नीति को कैसे लागू कर सकते हैं:

अनुप्रयोग।उपयोग(अभिव्यक्त करना।सत्र({
गुप्त: "गुप्त",
कुकी: {
केवल http: सच,
सुरक्षित: सच
}
}))

यदि किसी हमलावर ने कुकी को एक्सेस करने का प्रयास किया है केवल Http ऊपर दिखाए गए अनुसार सही पर सेट किया गया टैग, उन्हें एक खाली स्ट्रिंग प्राप्त होगी।

क्रॉस-साइट स्क्रिप्टिंग हैकर्स के लिए एक आसान लक्ष्य है

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