- वेब की प्रमुख कमजोरी XSS हमलों को रोकने के लिए Firefox ने पहली बार मानकीकृत Sanitizer API को सपोर्ट किया है
- मौजूदा innerHTML की जगह setHTML() मेथड का उपयोग करने पर, अविश्वसनीय HTML को DOM में डालने से पहले अपने-आप sanitize किया जाता है और malicious script हट जाते हैं
- अगर डिफ़ॉल्ट सेटिंग बहुत सख्त या बहुत ढीली लगे, तो डेवलपर custom settings के जरिए अनुमति देने वाले elements और attributes को नियंत्रित कर सकते हैं
- Firefox की यह सुविधा Trusted Types के साथ मिलकर पूरे वेब की सुरक्षा को बेहतर बनाती है और डेवलपर को अलग security team के बिना भी XSS रोकने में मदद करती है
XSS कमजोरी और Firefox की प्रतिक्रिया
- Cross-site scripting (XSS) तब होता है जब attacker, user input वाले content के जरिए मनमाना HTML या JavaScript inject कर देता है
- attacker इसका उपयोग user interaction की निगरानी करने या data चुराने के लिए कर सकता है
- XSS को लगभग 10 वर्षों से शीर्ष 3 वेब कमजोरियों (CWE-79) में गिना जाता रहा है
- Firefox 2009 से Content-Security-Policy (CSP) मानक को आगे बढ़ाते हुए XSS बचाव को मजबूत करता रहा है
- CSP उन resources को सीमित करता है जिन्हें वेबसाइट load और execute कर सकती है
- लेकिन इसमें मौजूदा साइट संरचना में बदलाव और लगातार security review की ज़रूरत होती है, इसलिए व्यापक अपनाने में सीमाएँ रही हैं
Sanitizer API और setHTML() की भूमिका
- Sanitizer API malicious HTML को harmless रूप में बदलने का मानकीकृत तरीका देता है
- उदाहरण कोड में
<img src="x" onclick="alert('XSS')"> element हटा दिया जाता है और केवल <h1>Hello my name is</h1> बचता है
- setHTML() मेथड HTML insert करते समय अपने-आप sanitize प्रक्रिया चलाता है, जिससे डिफ़ॉल्ट रूप से सुरक्षित व्यवहार सुनिश्चित होता है
- मौजूदा
innerHTML assignment को सिर्फ setHTML() से बदल देने भर से मजबूत XSS सुरक्षा मिल सकती है
- अगर डिफ़ॉल्ट सेटिंग बहुत सख्त या बहुत ढीली हो, तो डेवलपर custom settings के जरिए अनुमति वाले HTML elements और attributes को परिभाषित कर सकते हैं
- प्रयोग के लिए Sanitizer API playground टूल का उपयोग किया जा सकता है
Trusted Types के साथ संयोजन
- Trusted Types API HTML parsing और insertion को केंद्रीकृत तरीके से नियंत्रित करके अतिरिक्त security layer देता है
setHTML() का उपयोग करते समय Trusted Types policy आसानी से लागू की जा सकती है
- सख्त policy केवल
setHTML() को अनुमति देकर अन्य जोखिमभरे insertion तरीकों को रोक सकती है, जिससे भविष्य में XSS regression रोकने में मदद मिलती है
Firefox 148 के सुरक्षा सुधार का प्रभाव
- Firefox 148 Sanitizer API और Trusted Types दोनों को सपोर्ट करता है, जिससे डिफ़ॉल्ट सुरक्षा स्तर में बड़ा सुधार होता है
- डेवलपर जटिल security policy या अलग security team के बिना भी सिर्फ सरल code changes से XSS रोक सकते हैं
- इस मानक के आने से सभी browsers में सुरक्षित वेब वातावरण के प्रसार की उम्मीद है
सारांश
- Firefox 148, setHTML() मेथड और Sanitizer API के जरिए वेब डेवलपर को आसानी से XSS हमले रोकने में सक्षम बनाता है
- यह सुविधा CSP की सीमाओं को पूरा करती है और डिफ़ॉल्ट रूप से सुरक्षित HTML insertion को वेब मानक के रूप में स्थापित करने का अवसर देती है
- Trusted Types के साथ मिलकर यह लंबे समय तक security बनाए रखने और XSS regression रोकने में मदद करती है
- नतीजतन, Firefox security को default मानने वाले वेब वातावरण की ओर बदलाव का नेतृत्व कर रहा है
अभी कोई टिप्पणी नहीं है.