Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
DOMPurify — DOMPurify - HTML, MathML और SVG के लिए एक DOM-मात्र, अति-तेज़, अति-सहिष्णु XSS सैनिटाइज़र। DOMPurify एक सुरक्षित डिफ़ॉल्ट के साथ काम करता है, लेकिन बहुत सारी कॉन्फ़िगरेबिलिटी और हुक्स प्रदान करता है। डेमो: | Kitploit
उपकरण/GitHubGitHub/cure53/dompurify
रक्षात्मक उपकरणस्थैतिक विश्लेषणकोड विश्लेषणवेब सुरक्षालर्निंग और शिक्षाAPI सुरक्षा
GitHubcure53/dompurify

DOMPurify

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

रिपॉजिटरी देखें
17.3k8601693 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट
# DOMPurify

[![npm](https://img.shields.io/npm/v/dompurify.svg)](https://www.npmjs.com/package/dompurify) [![License](https://img.shields.io/badge/license-MPL--2.0%20OR%20Apache--2.0-blue.svg)](https://github.com/cure53/DOMPurify/blob/main/LICENSE) [![Downloads](https://img.shields.io/npm/dm/dompurify.svg)](https://www.npmjs.com/package/dompurify) [![dependents](https://badgen.net/github/dependents-repo/cure53/dompurify?color=green&label=dependents)](https://github.com/cure53/DOMPurify/network/dependents) ![npm package minimized gzipped size (select exports)](https://img.shields.io/bundlejs/size/dompurify?color=%233C1&label=gzip) [![Cloudback](https://app.cloudback.it/badge/cure53/DOMPurify)](https://cloudback.it)

[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/12162/badge)](https://www.bestpractices.dev/projects/12162) [![Build & Test](https://github.com/cure53/DOMPurify/actions/workflows/build-and-test.yml/badge.svg?branch=main)](https://github.com/cure53/DOMPurify/actions/workflows/build-and-test.yml) [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/cure53/DOMPurify/badge)](https://scorecard.dev/viewer/?uri=github.com/cure53/DOMPurify) [![Socket Badge](https://badge.socket.dev/npm/package/dompurify/latest)](https://badge.socket.dev/npm/package/dompurify/latest) [![snyk.io package health](https://img.shields.io/badge/snyk.io%20package%20health-97/100-brightgreen)](https://security.snyk.io/package/npm/dompurify)

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

इसका उपयोग करना और इसके साथ शुरुआत करना भी बहुत आसान है। DOMPurify को [फरवरी 2014 में शुरू किया गया था](https://github.com/cure53/DOMPurify/commit/a630922616927373485e0e787ab19e73e3691b2b) और तब से यह संस्करण **v3.4.17** तक पहुँच चुका है।

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

**ध्यान दें कि [DOMPurify v2.5.9](https://github.com/cure53/DOMPurify/releases/tag/2.5.9) MSIE का समर्थन करने वाला नवीनतम संस्करण है। MSIE के साथ संगत महत्वपूर्ण सुरक्षा अपडेट के लिए, कृपया [2.x शाखा](https://github.com/cure53/DOMPurify/tree/2.x) का उपयोग करें।**

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

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

DOMPurify परियोजना ने [HTML Sanitizer API](https://wicg.github.io/sanitizer-api/#sanitizer) के निर्माण को प्रेरित किया, जो पहले से ही [कई ब्राउज़रों](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Sanitizer_API#browser_compatibility) में उपलब्ध है। वही क्षमता अब सीधे [WHATWG HTML विनिर्देश](https://html.spec.whatwg.org/#html-sanitization) में मानकीकृत की जा रही है।

## विषय-सूची

- [यह क्या करता है?](#what-does-it-do)
- [मैं इसका उपयोग कैसे करूँ?](#how-do-i-use-it)
- [क्या कोई डेमो है?](#is-there-a-demo)
- [अगर मुझे कोई _सुरक्षा_ बग मिले तो क्या करूँ?](#what-if-i-find-a-security-bug)
- [कृपया कुछ शुद्धिकरण नमूने दें?](#some-purification-samples-please)
- [क्या समर्थित है?](#what-is-supported)
- [Internet Explorer जैसे लीगेसी ब्राउज़रों के बारे में क्या?](#what-about-legacy-browsers-like-internet-explorer)
- [DOMPurify और Trusted Types के बारे में क्या?](#what-about-dompurify-and-trusted-types)
- [क्या मैं DOMPurify को कॉन्फ़िगर कर सकता/सकती हूँ?](#can-i-configure-dompurify)
- [स्थायी कॉन्फ़िगरेशन](#persistent-configuration)
- [हुक्स](#hooks)
- [हटाया गया कॉन्फ़िगरेशन](#removed-configuration)
- [सतत एकीकरण](#continuous-integration)
- [सुरक्षा मेलिंग सूची](#security-mailing-list)
- [किसने योगदान दिया?](#who-contributed)

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

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

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

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

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

```html
<script type="text/javascript" src="dist/purify.js"></script>
```

### न्यूनतम और परीक्षित प्रोडक्शन संस्करण का उपयोग करना (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 } });
```

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

खैर, कृपया ध्यान दें, यदि आप _पहले_ 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) देखें।

### स्ट्रिंग के बजाय DOM नोड पास करने के बारे में क्या?

`DOMPurify.sanitize()` एक DOM नोड (एक `Element`, `DocumentFragment` या `Document`) भी स्वीकार करता है। 3.4.14 से, उन नोड्स के लिए यह पथ सुदृढ़ (hardened) कर दिया गया है जो HTML पार्सर से नहीं आए हैं: DOM API से बनाया गया या XML/XHTML के रूप में पार्स किया गया नोड (उदाहरण के लिए `DOMParser` के माध्यम से `application/xhtml+xml` और `importNode()` के साथ) केस-संरक्षित एट्रिब्यूट नाम जैसे `ONERROR` रख सकता है, या एक रॉटेक्स्ट एलिमेंट जैसे `<style>` जिसके टेक्स्ट के अंदर कोई एलिमेंट चाइल्ड या उसका अपना एंड टैग हो। दोनों आकार स्ट्रिंग सैनिटाइज़र के लिए अदृश्य हैं क्योंकि HTML पार्सर उन्हें कभी नहीं बना सकता, लेकिन रीपार्स पर वे बाहर निकल आते हैं। अब DOMPurify एट्रिब्यूट्स को उनके सटीक `Attr` नोड द्वारा हटाता है और इन लिटरल-टेक्स्ट ट्रीज़ को असुरक्षित मानता है, इसलिए इनपुट पक्ष पर दस्तावेज़ संदर्भों को मिलाना कवर हो गया है। _आउटपुट_ पक्ष पर संदर्भों को न मिलाना अभी भी आपकी ज़िम्मेदारी है, ऊपर दिया गया पैराग्राफ देखें।

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

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

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

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

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

क्यों? क्योंकि _jsdom_ के पुराने संस्करण ऐसे तरीकों से बगी होने के लिए जाने जाते हैं जिनके परिणामस्वरूप XSS होता है, _भले ही_ DOMPurify 100% सही ढंग से सब कुछ करे। उदाहरण के लिए, _jsdom v19.0.0_ में **ज्ञात हमला वेक्टर** हैं जो _jsdom v20.0.0_ में ठीक किए गए हैं - और इस कारण से हम वास्तव में _jsdom_ को अद्यतित रखने की सलाह देते हैं।

कृपया यह भी ध्यान रखें कि [happy-dom](https://github.com/capricorn86/happy-dom) जैसे टूल मौजूद हैं, लेकिन इस समय **उन्हें सुरक्षित नहीं माना जाता**। वर्तमान में DOMPurify को _happy-dom_ के साथ संयोजित करने की सलाह नहीं दी जाती है और इससे संभवतः XSS होगा। इस पृष्ठभूमि के लिए कि आपके द्वारा चुना गया सर्वर-साइड DOM आपके विश्वसनीय कंप्यूटिंग बेस का हिस्सा क्यों है, [Attack Classes & Bypass History](https://github.com/cure53/DOMPurify/wiki/Attack-Classes-&-Bypass-History) देखें।

उन रनटाइम्स पर जहाँ _jsdom_ नहीं चल सकता, जैसे Cloudflare Workers या Vercel Edge, [purify-edge](https://github.com/anzal1/purify-edge) एक तृतीय-पक्ष प्रोजेक्ट है जो parse5-आधारित विंडो पर एक असंशोधित DOMPurify चलाता है। संगतता जाँच के रूप में हमारा टेस्ट सूट `npm run test:purify-edge` के साथ इसके विरुद्ध चलाया जा सकता है। यह हमारे द्वारा अनुरक्षित नहीं है, और एक सफल रन न तो कोई समर्थन है और न ही कोई सुरक्षा गारंटी।

इसके अलावा, आप सर्वर पर DOMPurify का उपयोग करने के लिए ठीक हैं। शायद। यह वास्तव में _jsdom_ या सर्वर-साइड पर आपके द्वारा उपयोग किए जाने वाले किसी भी DOM पर निर्भर करता है। यदि आप इसके साथ जी सकते हैं, तो इसे काम कराने का तरीका यह है:

```bash
npm install dompurify
npm install jsdom
```

_jsdom_ के लिए (कृपया एक अद्यतित संस्करण का उपयोग करें), यह काम कर देना चाहिए:

```js
const createDOMPurify = require('dompurify');
const { JSDOM } = require('jsdom');

const window = new JSDOM('').window;
const DOMPurify = createDOMPurify(window);
const clean = DOMPurify.sanitize('<b>hello there</b>');
```

या फिर यह, अगर आप imports के साथ काम करना पसंद करते हैं:

```js
import { JSDOM } from 'jsdom';
import DOMPurify from 'dompurify';

const window = new JSDOM('').window;
const purify = DOMPurify(window);
const clean = purify.sanitize('<b>hello there</b>');
```

यदि आपको अपने विशिष्ट सेटअप में इसे काम कराने में समस्याएँ आ रही हैं, तो अद्भुत [isomorphic-dompurify](https://github.com/kkomelin/isomorphic-dompurify) प्रोजेक्ट को देखने पर विचार करें, जो उन कई समस्याओं का समाधान करता है जिनका लोगों को सामना करना पड़ सकता है।

```bash
npm install isomorphic-dompurify
```

```js
import DOMPurify from 'isomorphic-dompurify';

const clean = DOMPurify.sanitize('<s>hello</s>');
```

## क्या कोई डेमो है?

बेशक एक डेमो है! [DOMPurify के साथ खेलें](https://cure53.de/purify)

## अगर मुझे कोई सुरक्षा बग मिले तो क्या करें?

सबसे पहले, कृपया तुरंत हमसे [ईमेल](mailto:[email protected]) के माध्यम से संपर्क करें ताकि हम एक फिक्स पर काम कर सकें। [PGP कुंजी](https://keyserver.ubuntu.com/pks/lookup?op=vindex&search=0xC26C858090F70ADA)

साथ ही, आप संभवतः एक बग बाउंटी के लिए पात्र हैं! [Fastmail](https://www.fastmail.com/) के अच्छे लोग अपनी सेवाओं के लिए DOMPurify का उपयोग करते हैं और उन्होंने हमारी लाइब्रेरी को अपने बग बाउंटी स्कोप में जोड़ा है। इसलिए, यदि आप DOMPurify को बायपास या कमजोर करने का कोई तरीका खोजते हैं, तो कृपया उनकी वेबसाइट और [बग बाउंटी जानकारी](https://www.fastmail.com/about/bugbounty/) पर भी एक नज़र डालें।

## कृपया कुछ शुद्धिकरण नमूने?

शुद्ध किया गया मार्कअप कैसा दिखता है? खैर, [डेमो](https://cure53.de/purify) इसे बड़ी संख्या में गंदे एलिमेंट्स के लिए दिखाता है। लेकिन आइए कुछ छोटे उदाहरण भी दिखाएं!

```js
DOMPurify.sanitize(''); // becomes <img src="https://raw.githubusercontent.com/cure53/dompurify/main/x">
DOMPurify.sanitize('<svg><g/onload=alert(2)//<p>'); // becomes <svg><g></g></svg>
DOMPurify.sanitize('<p>abcdef</p>'); // becomes <p>abc</p>
DOMPurify.sanitize('<math><mi//xlink:href="data:x,<script>alert(4)</script>">'); // becomes <math><mi></mi></math>
DOMPurify.sanitize('<TABLE><tr><td>HELLO</tr></TABL>'); // becomes <table><tbody><tr><td>HELLO</td></tr></tbody></table>
DOMPurify.sanitize('<UL><li><A HREF=//google.com>click</UL>'); // becomes <ul><li><a href="//google.com">click</a></li></ul>
```

ये तो बस एक झलक है। इन नमूनों की पूरी श्रेणी - mutation XSS, namespace confusion, DOM clobbering, rawtext breakouts, और बहुत कुछ - देखने के लिए [Attack Classes & Bypass History](https://github.com/cure53/DOMPurify/wiki/Attack-Classes-&-Bypass-History) देखें।

## क्या समर्थित है?

DOMPurify वर्तमान में HTML5, SVG और MathML का समर्थन करता है। DOMPurify डिफ़ॉल्ट रूप से CSS, HTML कस्टम डेटा एट्रिब्यूट्स की अनुमति देता है। DOMPurify Shadow DOM का भी समर्थन करता है - और DOM टेम्पलेट्स को पुनरावर्ती रूप से सैनिटाइज़ करता है। यह केवल खुले shadow roots को कवर करता है: बंद shadow root को स्क्रिप्ट से पढ़ा नहीं जा सकता, इसलिए DOMPurify न तो उसके अंदर देख सकता है और न ही उसे सैनिटाइज़ कर सकता है। स्ट्रिंग्स प्रभावित नहीं होतीं, क्योंकि DOMPurify का अपना पार्सर डिक्लेरेटिव shadow roots (`<template shadowrootmode>`) को अनदेखा करता है, लेकिन `setHTMLUnsafe()` और `Document.parseHTMLUnsafe()` ऐसा नहीं करते: यदि आप उनके साथ अविश्वसनीय मार्कअप पार्स करते हैं और फिर परिणामी नोड्स को DOMPurify (`IN_PLACE`, `RETURN_DOM`, `RETURN_DOM_FRAGMENT`) को पास करते हैं, तो उस मार्कअप में मौजूद कोई भी बंद shadow root बिना सैनिटाइज़ हुए वापस आता है। इसके बजाय अविश्वसनीय मार्कअप को स्ट्रिंग के रूप में DOMPurify को पास करें। DOMPurify आपको jQuery `$()` और `elm.html()` API के साथ उपयोग के लिए HTML को सैनिटाइज़ करने की भी अनुमति देता है, बिना किसी ज्ञात समस्या के। डिफ़ॉल्ट रूप से अनुमत एलिमेंट्स और एट्रिब्यूट्स के सटीक सेट के लिए, [Default TAGs & ATTRIBUTEs allow-list & blocklist](https://github.com/cure53/DOMPurify/wiki/Default-TAGs-ATTRIBUTEs-allow-list-&-blocklist) विकी पेज देखें।

## Internet Explorer जैसे लीगेसी ब्राउज़रों के बारे में क्या?

DOMPurify कुछ भी नहीं करता। यह बस वही स्ट्रिंग लौटाता है जो आपने इसे दी थी। DOMPurify `isSupported` नामक एक प्रॉपर्टी प्रदान करता है, जो आपको बताती है कि यह अपना काम कर पाएगा या नहीं, ताकि आप अपनी खुद की बैकअप योजना बना सकें।

## DOMPurify और Trusted Types के बारे में क्या?

संस्करण 1.0.9 में, DOMPurify में [Trusted Types API](https://github.com/w3c/webappsec-trusted-types) ([MDN](https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API)) के लिए समर्थन जोड़ा गया था।
संस्करण 2.0.0 में, इस संबंध में DOMPurify के व्यवहार को नियंत्रित करने के लिए एक कॉन्फ़िग फ़्लैग जोड़ा गया था।

जब `DOMPurify.sanitize` का उपयोग ऐसे वातावरण में किया जाता है जहाँ Trusted Types API उपलब्ध है और `RETURN_TRUSTED_TYPE` को `true` पर सेट किया गया है, तो यह स्ट्रिंग के बजाय `TrustedHTML` मान लौटाने का प्रयास करता है (`RETURN_DOM` और `RETURN_DOM_FRAGMENT` कॉन्फ़िग विकल्पों का व्यवहार नहीं बदलता)।

ध्यान दें कि DOMPurify का उपयोग करके `trustedTypes` में एक पॉलिसी बनाने के लिए, `RETURN_TRUSTED_TYPE: false` आवश्यक है, क्योंकि `createHTML` एक सामान्य स्ट्रिंग की अपेक्षा करता है, `TrustedHTML` की नहीं। नीचे दिया गया उदाहरण इसे दर्शाता है।

```js
window.trustedTypes.createPolicy('default', {
  createHTML: (to_escape) =>
    DOMPurify.sanitize(to_escape, { RETURN_TRUSTED_TYPE: false }),
});
```

जब कोई `TRUSTED_TYPES_POLICY` प्रदान नहीं किया जाता है, तो DOMPurify `dompurify` नामक अपनी आंतरिक Trusted Types नीति बनाने का प्रयास करता है। यदि आपका पेज पहले से ही एक सख्त CSP (उदाहरण के लिए `trusted-types my-organization`) के साथ अपनी स्वयं की नीति परिभाषित करता है जो `dompurify` नामक नीति की अनुमति नहीं देता है, तो यह प्रयास ब्राउज़र द्वारा अवरुद्ध कर दिया जाता है और CSP उल्लंघन के साथ `TrustedTypes policy dompurify could not be created.` चेतावनी लॉग करता है।

DOMPurify को अपनी आंतरिक फ़ॉलबैक नीति बनाने से रोकने के लिए, `TRUSTED_TYPES_POLICY: null` पास करें। यह तब सही विकल्प है जब आप अपनी स्वयं की नीति के `createHTML` के अंदर से `DOMPurify.sanitize` को कॉल करते हैं, और इसका अर्थ है कि आपको अपने CSP की `trusted-types` अनुमति-सूची में `dompurify` जोड़ने की आवश्यकता नहीं है।

```js
window.trustedTypes.createPolicy('my-organization', {
  createHTML: (input) =>
    DOMPurify.sanitize(input, { TRUSTED_TYPES_POLICY: null }),
});
```

अपनी स्वयं की रैपिंग नीति को DOMPurify को उसकी `TRUSTED_TYPES_POLICY` के रूप में **न** दें (उदाहरण के लिए `DOMPurify.setConfig({ TRUSTED_TYPES_POLICY: myPolicy })` के माध्यम से) जब उस नीति का `createHTML` पहले से ही `DOMPurify.sanitize` को कॉल करता हो। यह परिभाषा से चक्रीय है - सैनिटाइज़ करना नीति को कॉल करेगा, जो DOMPurify को फिर से कॉल करके सैनिटाइज़ करता है - और अनंत पुनरावृत्ति को रोकने के लिए DOMPurify एक वर्णनात्मक `TypeError` फेंकेगा। आपकी स्वयं की नीति को DOMPurify को कॉल करना चाहिए; DOMPurify को आपकी नीति को कॉल करने के लिए कॉन्फ़िगर नहीं किया जाना चाहिए।

---

[Read more](https://github.com/cure53/dompurify)
टूल डाउनलोड करें