अपडेट पर वापस जाएँ
New releaseAug 3, 2026

DOMPurify v3.4.13

DOMPurify - HTML, MathML और SVG के लिए एक DOM-मात्र, अति-तेज़, अति-सहिष्णु XSS सैनिटाइज़र। DOMPurify एक सुरक्षित डिफ़ॉल्ट के साथ काम करता है, लेकिन बहुत सारी कॉन्फ़िगरेबिलिटी और हुक्स प्रदान करता है। डेमो:

साझा करें

DOMPurify

npm License Downloads dependents npm package minimized gzipped size (select exports) Cloudback

OpenSSF Best Practices Build & Test OpenSSF Scorecard Socket Badge snyk.io package health

DOMPurify, HTML, MathML और SVG के लिए एक DOM-केवल, अति-तेज़, अत्यंत सहनशील XSS सैनिटाइज़र है।

इसका उपयोग और शुरुआत करना भी बहुत आसान है। DOMPurify को फरवरी 2014 में शुरू किया गया था और तब से यह संस्करण v3.4.15 तक पहुँच चुका है।

DOMPurify JavaScript के रूप में चलता है और सभी आधुनिक ब्राउज़रों (Safari (10+), Opera (15+), Edge, Firefox और Chrome - साथ ही Blink, Gecko या WebKit का उपयोग करने वाला लगभग कोई भी अन्य) में काम करता है। यह MSIE या अन्य लीगेसी ब्राउज़रों पर नहीं टूटता। यह बस कुछ नहीं करता।

ध्यान दें कि DOMPurify v2.5.9 MSIE का समर्थन करने वाला नवीनतम संस्करण है। MSIE के साथ संगत महत्वपूर्ण सुरक्षा अपडेट के लिए, कृपया 2.x शाखा का उपयोग करें।

हमारे स्वचालित परीक्षण प्रत्येक पुश पर वर्तमान इंजनों (Ubuntu, macOS और Windows पर Chromium, Firefox, और WebKit) पर 9 ब्राउज़र/OS संयोजनों को कवर करते हैं, और एक अलग मैट्रिक्स पुराने इंजन स्नैपशॉट्स (लगभग Chromium 110, Firefox 108 और WebKit 16.4 तक, लगभग तीन साल पुराने) पर सूट को फिर से चलाता है ताकि पुराने ब्राउज़रों पर होने वाले रिग्रेशन भी पकड़े जाएँ। हम jsdom पर DOMPurify के साथ Node.js v20, v22, v24, v25 और v26 भी चलाते हैं। पुराने Node संस्करण भी काम करते हैं, लेकिन... कोई गारंटी नहीं।

DOMPurify उन सुरक्षा विशेषज्ञों द्वारा लिखा गया है जिनका वेब हमलों और XSS में व्यापक अनुभव है। डरें नहीं। अधिक जानकारी के लिए कृपया हमारे Security Goals & Threat Model के बारे में भी पढ़ें। कृपया इसे पढ़ें। जैसे, वास्तव में। और यदि आपको विस्तृत विवरण पसंद है, तो Attack Classes & Bypass History पृष्ठ उन पार्सर-म्यूटेशन, नेमस्पेस, क्लॉबरिंग, और टेम्पलेट ट्रिक्स को सूचीबद्ध करता है जिनसे DOMPurify बचाव करता है।

DOMPurify परियोजना ने HTML Sanitizer API के निर्माण को प्रेरित किया, जो पहले से ही कई ब्राउज़रों में उपलब्ध है। यही क्षमता अब सीधे WHATWG HTML specification में मानकीकृत की जा रही है।

विषय-सूची

यह क्या करता है?

DOMPurify HTML को सैनिटाइज़ करता है और XSS हमलों को रोकता है। आप DOMPurify को उदाहरण के लिए गंदे HTML से भरी एक स्ट्रिंग दे सकते हैं और यह साफ़ HTML वाली एक स्ट्रिंग लौटाएगा (जब तक कि अन्यथा कॉन्फ़िगर न किया गया हो)। DOMPurify उन सब कुछ को हटा देगा जिसमें खतरनाक HTML होता है और इस प्रकार XSS हमलों और अन्य बुराइयों को रोकता है। यह बेहद तेज़ भी है। हम ब्राउज़र द्वारा प्रदान की गई तकनीकों का उपयोग करते हैं और उन्हें एक XSS फ़िल्टर में बदल देते हैं। आपका ब्राउज़र जितना तेज़ होगा, DOMPurify उतना ही तेज़ होगा।

मैं इसका उपयोग कैसे करूँ?

यह आसान है। बस अपनी वेबसाइट पर DOMPurify शामिल करें।

अनमिनिफाइड संस्करण का उपयोग करना (source-map उपलब्ध)```html

### मिनिफाइड और परीक्षण किए गए प्रोडक्शन संस्करण का उपयोग करना (source-map उपलब्ध)```html
<script type="text/javascript" src="dist/purify.min.js"></script>

इसके बाद आप निम्नलिखित कोड निष्पादित करके स्ट्रिंग्स को सैनिटाइज़ कर सकते हैं:```js const clean = DOMPurify.sanitize(dirty);

या शायद यह, अगर आप Angular या ऐसे ही किसी फ्रेमवर्क के साथ काम करना पसंद करते हैं:```js
import DOMPurify from 'dompurify';

const clean = DOMPurify.sanitize('<b>hello there</b>');

परिणामी HTML को innerHTML का उपयोग करके DOM तत्व में या document.write() का उपयोग करके DOM में लिखा जा सकता है। यह पूरी तरह से आप पर निर्भर है। ध्यान दें कि डिफ़ॉल्ट रूप से, हम HTML, SVG और MathML की अनुमति देते हैं। यदि आपको केवल HTML की आवश्यकता है, जो कि एक बहुत ही सामान्य उपयोग-मामला हो सकता है, तो आप उसे भी आसानी से सेट कर सकते हैं:```js const clean = DOMPurify.sanitize(dirty, { USE_PROFILES: { html: true } });

### क्या इसमें कोई फुट-गन की संभावना है?

खैर, कृपया ध्यान दें, यदि आप _पहले_ HTML को सैनिटाइज़ करते हैं और फिर उसे _बाद में_ संशोधित करते हैं, तो आप आसानी से **सैनिटाइज़ेशन के प्रभावों को निष्फल कर सकते हैं**। यदि आप सैनिटाइज़ किए गए मार्कअप को सैनिटाइज़ेशन के _बाद_ किसी अन्य लाइब्रेरी को देते हैं, तो कृपया सुनिश्चित करें कि वह लाइब्रेरी स्वयं HTML के साथ छेड़छाड़ नहीं करती। सुरक्षित-उपयोग के नुस्खों और उन टैग्स/एट्रिब्यूट्स के लिए जिनके बारे में दो बार सोचना चाहिए, [Security Goals & Threat Model](https://github.com/cure53/DOMPurify/wiki/Security-Goals-&-Threat-Model) देखें, और यह समझने के लिए कि पोस्ट-प्रोसेसिंग और मार्कअप कॉन्टेक्स्ट बदलना सैनिटाइज़ेशन को कैसे विफल करता है, [Attack Classes & Bypass History](https://github.com/cure53/DOMPurify/wiki/Attack-Classes-&-Bypass-History) देखें।

### ठीक है, समझ गया, चलिए आगे बढ़ते हैं

अपने मार्कअप को सैनिटाइज़ करने के बाद, आप प्रॉपर्टी `DOMPurify.removed` पर भी नज़र डाल सकते हैं और पता लगा सकते हैं कि कौन से एलिमेंट्स और एट्रिब्यूट्स बाहर निकाल दिए गए थे। कृपया इस प्रॉपर्टी का उपयोग **कोई भी सुरक्षा-महत्वपूर्ण निर्णय लेने के लिए न करें**। यह केवल जिज्ञासु मनों के लिए एक छोटा-सा सहायक है।

### सर्वर पर DOMPurify चलाना

DOMPurify तकनीकी रूप से Node.js के साथ सर्वर-साइड भी काम करता है। हमारा समर्थन [Node.js रिलीज़ साइकल](https://nodejs.org/en/about/previous-releases) का पालन करने का प्रयास करता है।

सर्वर पर DOMPurify चलाने के लिए एक DOM का मौजूद होना आवश्यक है, जो शायद कोई आश्चर्य की बात नहीं है। आमतौर पर, [jsdom](https://github.com/jsdom/jsdom) पसंदीदा टूल है और हम _jsdom_ के नवीनतम संस्करण का उपयोग करने की **दृढ़ता से सलाह देते हैं**।

श्रेणियाँ