
क्रॉस-साइट स्क्रिप्टिंग (XSS) एक हमले की तकनीक है जिसमें हमलावर द्वारा आपूर्ति किए गए कोड को उपयोगकर्ता के ब्राउज़र इंस्टेंस में प्रतिध्वनित (echo) किया जाता है। ब्राउज़र इंस्टेंस एक मानक वेब ब्राउज़र क्लाइंट हो सकता है या किसी सॉफ़्टवेयर उत्पाद में एम्बेडेड ब्राउज़र ऑब्जेक्ट हो सकता है, जैसे WinAmp के भीतर का ब्राउज़र, एक RSS रीडर, या एक ईमेल क्लाइंट। कोड आमतौर पर HTML/JavaScript में लिखा जाता है, लेकिन यह VBScript, ActiveX, Java, Flash, या ब्राउज़र द्वारा समर्थित किसी अन्य तकनीक तक भी विस्तारित हो सकता है। जब कोई हमलावर उपयोगकर्ता के ब्राउज़र को अपना कोड निष्पादित करने के लिए प्रेरित करता है, तो कोड होस्टिंग वेबसाइट के सुरक्षा संदर्भ (या क्षेत्र) के भीतर चलेगा। विशेषाधिकार के इस स्तर के साथ, कोड में ब्राउज़र के लिए सुलभ किसी भी संवेदनशील डेटा को पढ़ने, संशोधित करने और प्रसारित करने की क्षमता होती है। एक क्रॉस-साइट स्क्रिप्टेड उपयोगकर्ता का खाता अपहृत (कुकी चोरी) हो सकता है, उसका ब्राउज़र किसी अन्य स्थान पर पुनर्निर्देशित हो सकता है, या संभवतः उस वेबसाइट द्वारा दी गई धोखाधड़ी वाली सामग्री दिखाई जा सकती है जिसे वे देख रहे हैं। क्रॉस-साइट स्क्रिप्टिंग हमले अनिवार्य रूप से उपयोगकर्ता और वेबसाइट के बीच विश्वास संबंध से समझौता करते हैं। ब्राउज़र ऑब्जेक्ट इंस्टेंस का उपयोग करने वाले एप्लिकेशन जो फ़ाइल सिस्टम से सामग्री लोड करते हैं, स्थानीय मशीन क्षेत्र के अंतर्गत कोड निष्पादित कर सकते हैं, जिससे सिस्टम से समझौता हो सकता है।
क्रॉस-साइट स्क्रिप्टिंग हमलों के तीन प्रकार हैं: गैर-स्थायी (non-persistent), स्थायी (persistent), और DOM-आधारित। गैर-स्थायी हमलों और DOM-आधारित हमलों के लिए उपयोगकर्ता को या तो दुर्भावनापूर्ण कोड से लैस एक विशेष रूप से तैयार लिंक पर जाना होता है, या एक दुर्भावनापूर्ण वेब पृष्ठ पर जाना होता है जिसमें एक वेब फ़ॉर्म होता है, जिसे कमजोर साइट पर पोस्ट करने पर हमला शुरू हो जाता है। दुर्भावनापूर्ण फ़ॉर्म का उपयोग अक्सर तब होता है जब कमजोर संसाधन केवल HTTP POST अनुरोधों को स्वीकार करता है। ऐसे मामले में, फ़ॉर्म को पीड़ित की जानकारी के बिना स्वचालित रूप से सबमिट किया जा सकता है (उदाहरण के लिए, जावास्क्रिप्ट का उपयोग करके)। दुर्भावनापूर्ण लिंक पर क्लिक करने या दुर्भावनापूर्ण फ़ॉर्म सबमिट करने पर, XSS पेलोड वापस प्रतिध्वनित होगा और उपयोगकर्ता के ब्राउज़र द्वारा व्याख्या करके निष्पादित किया जाएगा। लगभग मनमाने अनुरोधों (GET और POST) को भेजने की एक अन्य तकनीक एम्बेडेड क्लाइंट, जैसे Adobe Flash, का उपयोग करना है। स्थायी हमले तब होते हैं जब दुर्भावनापूर्ण कोड किसी वेबसाइट पर सबमिट किया जाता है जहाँ इसे कुछ समय के लिए संग्रहीत किया जाता है। हमलावर के पसंदीदा लक्ष्यों के उदाहरणों में अक्सर संदेश बोर्ड पोस्ट, वेबमेल संदेश और वेब चैट सॉफ़्टवेयर शामिल होते हैं। बेखबर उपयोगकर्ता को किसी अतिरिक्त साइट/लिंक (जैसे हमलावर साइट या ईमेल के माध्यम से भेजा गया दुर्भावनापूर्ण लिंक) के साथ इंटरैक्ट करने की आवश्यकता नहीं होती है, बस कोड वाले वेब पृष्ठ को देखना होता है।