क्रॉस साइट स्क्रिप्टिंग से सीधा तात्पर्य किसी पृष्ठ पर जावास्क्रिप्ट को क्रियान्वित करने से है।
- यदि कोई बाहरी जावास्क्रिप्ट आपके किसी पृष्ठ पर घुसकर क्रियान्वित हो सकती है तो वह कुकीज़ तक अपनी पहुंच बना सकती है।
- और कुकीज़ पर पहुंच बनाने पर वह उस दौरान सक्रिय सत्रों (सेशन) तक भी पहुंच बना सकती है।
- और यदि सत्रों (सेशन) तक पहुंच बन जाए तो वह किसी उपयोगकर्ता के पासवर्ड को भी बदल सकती है।
अब आप समझ सकते हैं कि क्रॉस साइट स्क्रिप्टिंग कितनी खतरनाक हो सकती है।
ये कैसे होता है?
किसी जालपृष्ठ में विभिन्न छिद्र होते हैं जहां से ब्राउज़र द्वारा सूचनाएं भेजी जाती हैं। उदाहरण के लिए :
१. फार्म द्वारा भेजा गया “पोस्ट या गेट डाटा”
२. गेट डाटा (जो कि एड्रेस बार से कुछ इस प्रकार भेजा जाता है index.aspx?id=4564645)
३. कुकीज़
इत्यादि।
इन छिद्रों द्वारा भेजी गई सूचनाओं पर पूरा भरोसा नही किया जा सकता है। इसलिए इनके द्वारा आने वाले आंकड़ों को पृष्ठ में दिखाने से पहले उनकी पूरी साफ सफाई कर लेनी चाहिए। चलिए सबसे पहले देखते हैं कि आखिर इन छिद्रों से गड़बड़ कैसे की जा सकती है:
एक पृष्ठ बनाते हैं: test.php
इसमें यह कोड लिखेंगे:
<?php
$myname = $_GET[“name”];
echo $myname;
?>
अब मान लीजिए कि इस पृष्ठ को हम इस प्रकार से ब्राउज़र से खोलें:
http://servername/test.php?name=ankur
तो हमें ब्राउज़र में यह दिखाई देगा:
अब यदि हम कुछ ऐसा अनुरोध भेजें तो:
http://servername/test.php?name=<script>alert(“hacked”);</script>
जावास्क्रिप्ट क्रियान्वित हो जाएगी। ऐसा इसलिए है क्योंकि हमने गेट अनुरोध के आंकड़ों की सफाई,छंटाई या उन्हे शुद्ध नही किय है। अब मान लीजिए कि उपरोक्त कोड में यदि हम echo $myname; के स्थान पर echo htmlspecialchars($myname); लिख दें तो
आप देख सकते हैं कि इस बार जावास्क्रिप्ट क्रियान्वित नही हुई। बल्कि वह कोड ब्राउज़र में दिखाई देने लगा।
यदि आप इस पृष्ठ का स्रोत कोड देखेंगे तो आपको कुछ इस प्रकार दिखाई देगा:
आप देख सकते हैं कि 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