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

Ankur Gupta
Ankur Guptahttps://antarjaal.in
पेशे से वेब डेवेलपर, पिछले १० से अधिक वर्षों का वेबसाइटें और वेब एप्लिकेशनों के निर्माण का अनुभव। वर्तमान में ईपेपर सीएमएस क्लाउड (सॉफ्टवेयर एज सर्विस आधारित उत्पाद) का विकास और संचालन कर रहे हैं। कम्प्यूटर और तकनीक के विषय में खास रुचि। लम्बे समय तक ब्लॉगर प्लेटफॉर्म पर लिखते रहे. फिर अपना खुद का पोर्टल आरम्भ किया जो की अन्तर्जाल डॉट इन के रूप में आपके सामने है.

क्रॉस साइट स्क्रिप्टिंग से सीधा तात्पर्य किसी पृष्ठ पर जावास्क्रिप्ट को क्रियान्वित करने से है।

  • यदि कोई बाहरी जावास्क्रिप्ट आपके किसी पृष्ठ पर घुसकर क्रियान्वित हो सकती है तो वह कुकीज़ तक अपनी पहुंच बना सकती है।
  • और कुकीज़ पर पहुंच बनाने पर वह उस दौरान सक्रिय सत्रों (सेशन) तक भी पहुंच बना सकती है।
  • और यदि सत्रों (सेशन) तक पहुंच बन जाए तो वह किसी उपयोगकर्ता के पासवर्ड को भी बदल सकती है।

अब आप समझ सकते हैं कि क्रॉस साइट स्क्रिप्टिंग कितनी खतरनाक हो सकती है।

ये कैसे होता है?

किसी जालपृष्ठ में विभिन्न छिद्र होते हैं जहां से ब्राउज़र द्वारा सूचनाएं भेजी जाती हैं। उदाहरण के लिए :

१. फार्म द्वारा भेजा गया “पोस्ट या गेट डाटा”

२. गेट डाटा (जो कि एड्रेस बार से कुछ इस प्रकार भेजा जाता है index.aspx?id=4564645)

३. कुकीज़

इत्यादि।

इन छिद्रों द्वारा भेजी गई सूचनाओं पर पूरा भरोसा नही किया जा सकता है। इसलिए इनके द्वारा आने वाले आंकड़ों को पृष्ठ में दिखाने से पहले उनकी पूरी साफ सफाई कर लेनी चाहिए। चलिए सबसे पहले देखते हैं कि आखिर इन छिद्रों से गड़बड़ कैसे की जा सकती है:

एक पृष्ठ बनाते हैं: test.php

इसमें यह कोड लिखेंगे:

<?php

$myname = $_GET[“name”];

echo $myname;

?>

अब मान लीजिए कि इस पृष्ठ को हम इस प्रकार से ब्राउज़र से खोलें:

http://servername/test.php?name=ankur

तो हमें ब्राउज़र में यह दिखाई देगा:

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

अब यदि हम कुछ ऐसा अनुरोध भेजें तो:

http://servername/test.php?name=<script>alert(“hacked”);</script>

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

जावास्क्रिप्ट क्रियान्वित हो जाएगी। ऐसा इसलिए है क्योंकि हमने गेट अनुरोध के आंकड़ों की सफाई,छंटाई या उन्हे शुद्ध नही किय है। अब मान लीजिए कि उपरोक्त कोड में यदि हम echo $myname; के स्थान पर echo htmlspecialchars($myname); लिख दें तो

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

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

यदि आप इस पृष्ठ का स्रोत कोड देखेंगे तो आपको कुछ इस प्रकार दिखाई देगा:

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

आप देख सकते हैं कि htmlspecialchars फंग्शन नें भेजे गए आंकड़ों को कम खतरनाक रूप में परिवर्तित कर दिया, जिससे वह जावास्क्रिप्ट क्रियान्वित नही हुई।

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

क्रॉस साइट स्क्रिप्टिंग (संक्षेप में XSS) के जरिए बड़े बड़ों की साइटों की ऐसी तैसी हो जाती है। साइमनटेक के अनुसार अंतर्जाल के अस्सी फीसदी जालस्थलों को क्रॉस साइट स्क्रिप्टिंग के जरिए ही हैक किया जाता है।

इसके विषय में और जानने के लिए इन कड़ियों को देख सकते हैं:

http://en.wikipedia.org/wiki/Cross-site_scripting

http://www.houbysoft.com/papers/xss.php

http://projects.webappsec.org/w/page/13246920/Cross-Site-Scripting

अनलिमिटेड वेब होस्टिंग की सच्चाई

आपने अक्सर देखा होगा कि कई वेब होस्टिंग कंपनियां अनलिमिटेड शेयर्ड होस्टिंग बेचती हैं। क्या अनलिमिटेड का अर्थ वाकई...

More Articles Like This