منصوبے کے بارے میں

DOMPurify ایک DOM پر مبنی XSS صاف کرنے والا ہے جو HTML، MathML اور SVG کے لیے ہے۔ یہ گندی مارک اپ کو بطور سٹرنگ یا بطور Element، DocumentFragment یا Document قبول کرتا ہے، ان عناصر اور صفات کو ہٹاتا ہے جو اسکرپٹ چلا سکتے ہیں یا مطلوبہ مارک اپ سیاق و سباق سے باہر نکل سکتے ہیں، اور ڈیفالٹ طور پر صاف شدہ HTML واپس کرتا ہے۔ بنیادی براؤزر API DOMPurify.sanitize(dirty) ہے؛ پیکیج کو بنڈلر پر مبنی پروجیکٹس میں بھی درآمد کیا جا سکتا ہے۔ ڈیفالٹ کنفیگریشن HTML، SVG اور MathML کی اجازت دیتی ہے، بشمول CSS اور حسب ضرورت ڈیٹا صفات۔ ایپلیکیشنز آؤٹ پٹ کو صرف HTML جیسے واحد پروفائل تک محدود کر سکتی ہیں، مجاز ٹیگز اور صفات کی وضاحت کر سکتی ہیں، مخصوص ٹیگز یا صفات کو منع کر سکتی ہیں، ٹیگز اور صفات شامل کر سکتی ہیں، ARIA اور ڈیٹا صفات کو کنٹرول کر سکتی ہیں، حسب ضرورت عناصر اور حسب ضرورت بلٹ ان عناصر کا نظم کر سکتی ہیں، اور ڈیٹا URIs اور URL پروٹوکول کی ہینڈلنگ کو ایڈجسٹ کر سکتی ہیں۔ ہکس صفائی کے دوران اضافی پروگرامیٹک معائنہ یا ترمیم کی اجازت دیتے ہیں۔ DOMPurify.removed پراپرٹی ڈیبگنگ کے لیے ہٹائے گئے نوڈس کی اطلاع دیتی ہے، لیکن پروجیکٹ واضح طور پر کہتا ہے کہ اسے سیکیورٹی فیصلے کرنے کے لیے استعمال نہیں کیا جانا چاہیے۔ DOMPurify جدید Safari، Opera، Edge، Firefox اور Chrome کے ساتھ ساتھ موجودہ Blink، Gecko یا WebKit انجن استعمال کرنے والے دیگر براؤزرز کو سپورٹ کرتا ہے۔ غیر تعاون یافتہ میراثی براؤزرز جیسے Internet Explorer پر، یہ ان پٹ کو بغیر تبدیل کیے واپس کرتا ہے اور isSupported کو ظاہر کرتا ہے تاکہ کال کرنے والے متبادل فراہم کر سکیں۔ 2.x برانچ، جو v2.5.9 پر ختم ہوتی ہے، IE مطابقت پذیر سیکیورٹی اپڈیٹس کے لیے دستاویزی لائن ہے۔ سرور سائیڈ استعمال Node.js میں ممکن ہے جب DOM فراہم کیا جائے۔ دستاویزی سیٹ اپ jsdom استعمال کرتا ہے، اور README سختی سے تجویز کرتا ہے کہ jsdom کو موجودہ رکھا جائے کیونکہ پرانے DOM نفاذ میں پارسر سے متعلق کمزوریاں ہو سکتی ہیں جو صفائی کو کمزور کرتی ہیں۔ یہ خاص طور پر اس وقت happy-dom کے ساتھ DOMPurify کو جوڑنے کے خلاف خبردار کرتا ہے۔ isomorphic-dompurify پیکیج کو کراس ماحول سیٹ اپ کے لیے اعلیٰ سطحی ریپر کے طور پر ذکر کیا گیا ہے۔ دیگر صلاحیتوں میں DOM ٹیمپلیٹس کی بار بار صفائی، Shadow DOM سپورٹ، اور اختیاری Trusted Types انٹیگریشن شامل ہیں۔ معاون براؤزر میں RETURN_TRUSTED_TYPE فعال ہونے پر، sanitize TrustedHTML ویلیو واپس کر سکتا ہے۔ کال کرنے والے اندرونی Trusted Types پالیسی فراہم یا غیر فعال کر سکتے ہیں، اور لائبریری بار بار پالیسی کنفیگریشن کا پتہ لگاتی ہے۔ پروجیکٹ محفوظ استعمال کی حدود پر زور دیتا ہے: صاف شدہ مارک اپ کو مختلف سیاق و سباق میں تبدیل کرنا یا دوبارہ پارس کرنا، یا اسے کسی دوسری لائبریری سے گزارنا جو DOM کو تبدیل کرتی ہے، صاف کرنے والے کی ضمانتوں کو باطل کر سکتا ہے۔ README سیکیورٹی اہداف اور خطرے کے ماڈل، حملے کی کلاس اور بائی پاس کی تاریخ، ڈیفالٹ ٹیگ اور صفت کی فہرستیں، آن لائن ڈیمو، اور نجی سیکیورٹی رابطہ سے لنک کرتا ہے۔ اس کے خودکار ٹیسٹ لینکس، macOS اور Windows پر موجودہ Chromium، Firefox اور WebKit انجنوں، پرانے انجن اسنیپ شاٹس، اور jsdom کے ساتھ متعدد Node.js ورژنز پر چلتے ہیں۔ DOMPurify MPL-2.0 یا Apache-2.0 کے تحت دوہری لائسنس یافتہ ہے۔