XSS के लिए एसेट्स, खतरों, ट्रस्ट बाउंड्रीज़, आवश्यक नियंत्रण, सुरक्षित डिफ़ॉल्ट, और कार्यान्वयन मार्गदर्शन को परिभाषित करता है। यह संदर्भ अपनाने की सीमा, विफलता व्यवहार, और प्रेक्षणीय साक्ष्य को तय करता है जबकि पर्यावरण-विशिष्ट सीमाओं को कॉन्फ़िगर करने योग्य छोड़ता है।
पैकेज स्थिति: संदर्भ संदर्भ मानव समीक्षा के लिए तैयार। अनुबंध और परीक्षण परिदृश्य पूर्ण हैं, लेकिन यह दावा नहीं किया गया है कि कोई अपनाने वाला कार्यान्वयन इन्हें पार कर चुका है।
निर्णय
XSS के लिए, एक खतरा मॉडल और सर्वर-प्रवर्तित नियंत्रण को संरक्षित सीमा पर अपनाएं। नियंत्रण को विश्वसनीय सर्वर पक्ष पर लागू करें, डिफ़ॉल्ट रूप से अस्वीकृति करें, और खतरा अनुमानों, दुरुपयोग सीमाओं, साक्ष्य, और पुनर्प्राप्ति को परिभाषित करें। यह पैकेज एक संदर्भ अनुबंध है: अपनाने वाली टीम को अपने पर्यावरण में साक्ष्य से संख्यात्मक सीमाएँ, प्रदाता, क्षेत्राधिकार, और परिचालन मालिक चुनने होंगे।
दायरा
- XSS अभिनेता, इनपुट, आउटपुट, स्थिति, नीति या स्कीमा संस्करण, और बाहरी रूप से दिखाई देने वाले परिणाम जो इस सुरक्षा ब्लॉक द्वारा वर्णित हैं।
- प्राथमिक और वैकल्पिक इंटरफेस, पृष्ठभूमि कार्य, कैश, एकीकरण, समर्थन पथ, और साक्ष्य जो समान सीमा का उपयोग कर सकते हैं।
- संदर्भ को सुरक्षित रूप से लागू करने के लिए आवश्यक अपनाने-विशिष्ट कॉन्फ़िगरेशन, रोलआउट, पुनर्प्राप्ति, और सत्यापन जिम्मेदारियां।
इस ब्लॉक के बाहर
- हर अपनाने वाले के लिए एक सार्वभौमिक विक्रेता, फ्रेमवर्क, क्षेत्राधिकार, संख्यात्मक सीमा, प्रतिधारण अवधि, या सेवा-स्तर उद्देश्य चुनना।
- यह दावा करना कि पैकेज किए गए परिदृश्य किसी डाउनस्ट्रीम कार्यान्वयन पर चलाए गए हैं या यह संदर्भ कानूनी, सुरक्षा, या पहुँच प्रमाणन प्रदान करता है।
अनुबंध
- नियंत्रण चुनने से पहले एसेट्स, अभिनेता, ट्रस्ट बाउंड्रीज़, हमलावर क्षमताएं, दुरुपयोग मामले, अनुमानों, और अवशिष्ट जोखिम को नामित करें।
- पहचान, नीति, अखंडता, ताजगी, या संसाधन सीमा स्थापित न हो पाने पर संरक्षित संचालन के लिए बंद करें।
- केवल क्लाइंट-प्रदान की गई पहचान पर भरोसा किए बिना अभिनेता, क्रेडेंशियल, टेनेंट, संसाधन, और अवसंरचना क्षमता के अनुसार कार्य और प्रयास सीमित करें।
- नियंत्रण संस्करण, सहसंबंध, निर्णय, और सुरक्षित कारण को साक्ष्य के रूप में रखते हुए लॉग में रहस्यों और संवेदनशील पेलोड को बाहर रखें।
- सभी क्लाइंट, कॉलबैक, फ़ाइल, मॉडल, और टेलीमेट्री फ़ील्ड्स को तब तक अविश्वसनीय मानें जब तक कि उन्हें प्रमाणित और इच्छित क्रिया के लिए मान्य न किया जाए।
- उच्च-प्रभाव वाले पथों के लिए एक दूसरा स्वतंत्र सुरक्षा उपाय आवश्यक करें जहाँ एक पार्सर, क्रेडेंशियल, या प्रदाता का समझौता निर्णायक हो सकता है।
- अविश्वसनीय डेटा को उसके सटीक HTML, एट्रिब्यूट, URL, JavaScript, CSS, या DOM संदर्भ के लिए एन्कोड करें और जब उपयोगकर्ता-निर्मित मार्कअप जानबूझकर समर्थित हो तो सत्यापित सैनिटाइजेशन का उपयोग करें।
- खतरनाक सिंक और स्ट्रिंग-निर्मित कोड से बचें, एक प्रतिबंधात्मक रक्षा-इन-गहराई सामग्री नीति लागू करें, और संग्रहित, परावर्तित, DOM, टेम्पलेट, SVG, और समृद्ध-सामग्री पथों का परीक्षण करें।
कार्यान्वयन मार्गदर्शन
- कार्यान्वयन समीक्षा से पहले सामान्य, पुन:प्रेषण, गणना, क्रॉस-टेनेंट, स्वचालन, और घटित-निर्भरता पथों का खतरा मॉडल करें।
- फ्रेमवर्क या विक्रेता विवरण चुनने से पहले XSS इनपुट, आउटपुट, अभिनेता, स्थिति, अपरिवर्तनीयताएं, पार्श्व प्रभाव, और साक्ष्य का मॉडल बनाएं।
- लागू XSS अनुबंध या नीति संस्करण को सामग्री स्थिति के साथ संग्रहीत करें ताकि माइग्रेशन, पुन:प्रेषण, और समर्थन निर्णय जिम्मेदार ठहराए जा सकें।
- नियंत्रित रोलआउट के पीछे पथ पेश करें, अपेक्षित और प्रेक्षित परिणामों की तुलना करें, और अपनाने के साक्ष्य पूर्ण होने तक एक परीक्षण पुनर्प्राप्ति मार्ग रखें।
विफलता प्रबंधन और सुरक्षा उपाय
- नियंत्रण ह्रास संरक्षित सीमा को बनाए रखता है, एक स्वामित्व वाली घटना संकेत उठाता है, और केवल उपलब्धता बनाए रखने के लिए कभी भी पहुंच प्रदान नहीं करता।
- अमान्य या विरोधाभासी XSS स्थिति को अस्वीकार या क्वारंटाइन किया जाता है; कार्यान्वयन कभी भी ऐसा मान अनुमानित नहीं करता जो अधिकार बढ़ाए या प्रभाव को दोहराए।
- पुनः प्रयास सीमित होते हैं और टिकाऊ पहचान का उपयोग करते हैं; समाप्ति के बाद, कार्य निरीक्षण योग्य अंतिम स्थिति तक पहुँचता है जिसमें एक जवाबदेह मालिक होता है।
सत्यापन और संचालन
- प्रत्येक ट्रस्ट सीमा पर जोड़ीदार अनुमति और अस्वीकृति मामलों का उपयोग करें और पुष्टि करें कि नियंत्रण निर्भरता खोने पर बंद हो जाता है।
- संवेदनशील पेलोड आयामों के बिना अनुबंध संस्करण द्वारा XSS सफलता, अस्वीकृति, सत्यापन विफलता, निर्भरता विफलता, पुनः प्रयास समाप्ति, और पुनर्प्राप्ति की निगरानी करें।
- नीति, स्कीमा, निर्भरता, माइग्रेशन, या सीमा परिवर्तनों के बाद जोड़ीदार सकारात्मक और नकारात्मक फ़िक्स्चर पुनः चलाएं और परिणामी साक्ष्य को सुरक्षित रखें।
अपनाने के अनुमान
- उदाहरण में नाम और मान एक ठोस फ़िक्स्चर हैं, सार्वभौमिक डिफ़ॉल्ट नहीं; अपनाने वाले इन्हें प्रलेखित साक्ष्य और स्वामित्व के माध्यम से बदलते हैं।
- अपनाने वाली प्रणाली प्रमाणित पहचान, टिकाऊ संचालन या रिकॉर्ड संस्करण, सीमित टेलीमेट्री, और परिवर्तन के लिए नियंत्रित पथ प्रदान कर सकती है।
इस पैकेज में निष्पादन-समान उदाहरण फ़िक्स्चर और स्वीकृति अनुबंध हैं। संरचना और मेटाडेटा जांचने के लिए संग्रह सत्यापक चलाएं, फिर लक्षित रिपॉजिटरी में परिदृश्यों का अनुवाद और निष्पादन करें और कार्यान्वयन साक्ष्य रिकॉर्ड करें।