پرش به محتوا

کتابخانه

دانلود dompurify و نشانی CDN ایرانی

DOMPurify یه کتابخانه جاوااسکریپت برای پاکسازی HTML، MathML و SVG از کدهای XSS هست. هر جا قراره محتوایی رو که کاربر یا یه منبع بیرونی نوشته توی صفحه نشون بدی، با DOMPurify تمیزش می کنی تا اسکریپت و ویژگی های خطرناک بیرون بمونن. هم توی مرورگر کار می کنه، هم توی Node.js با jsdom.

نسخه رسمی و بدون تغییر، از منبع رسمی با مجوز (MPL-2.0 OR Apache-2.0)؛ هش هر فایل با منبع بررسی شده است.

آخرین نسخه
۳.۴.۱۷
نسخه‌ها در مخزن
۵۹
مجوز
(MPL-2.0 OR Apache-2.0)
سازنده
Dr.-Ing. Mario Heiderich, Cure53
آخرین بررسی
آخرین به‌روزرسانی
توضیحات

آخرین نسخه

آخرین نسخه ۳.۴.۱۷ آخرین

۸۴۷ کیلوبایت· ۷ فایل· انتشار

دانلود
نشانی مستقیم فایل اصلی https://mirror.wbweb.ir/npm/dompurify@3.4.17/dist/purify.min.js
کد آماده با SRI <script src="https://mirror.wbweb.ir/npm/dompurify@3.4.17/dist/purify.min.js" integrity="sha256-zTeJj5eCrfVIIMQTGRtWkYA/DxN8eZ1u3P04UjtMLDE=" crossorigin="anonymous"></script>

SHA-256: cd37898f9782adf54820c413191b5691803f0f137c799d6edcfd38523b4c2c31

درباره dompurify (دام پیوریفای)

فرض کن سایتت بخش دیدگاه داره، یا یه سیستم تیکت که کاربرها توش متن فرمت دار می فرستن. اگه اون متن رو همون طور که اومده با innerHTML توی صفحه بذاری، کافیه یه نفر یه تگ تصویر با رویداد onerror بفرسته تا اسکریپتش توی مرورگر بقیه اجرا بشه. اسمش XSS هست و هنوز یکی از رایج ترین راه های نفوذ به سایت هاست. DOMPurify دقیقا برای همین جلوی کار رو می گیره.

کارش اینه که رشته HTML رو می گیره، توی یه DOM امن پارسش می کنه و هر چیز خطرناکی رو بیرون می ریزه: تگ script، ویژگی های رویدادی مثل onclick و onerror و آدرس های javascript:. بقیه محتوا، یعنی پاراگراف، لینک، جدول، تصویر و حتی SVG و MathML سالم، دست نخورده می مونه. به همین خاطر بهش می گن «tolerant»، یعنی ظاهر محتوای عادی رو خراب نمی کنه. سازنده اش Mario Heiderich و تیم Cure53 هستن که کارشون امنیت وبه.

کجا به کارت میاد؟ هر جایی که یه رشته HTML از یه منبع غیرقابل اعتماد داری: خروجی ویرایشگرهای متنی، دیدگاه ها، پیام های چت، محتوایی که از API می گیری و توی صفحه نشون می دی، یا پیش نمایش ایمیل و قالب. توی Node.js هم با jsdom کار می کنه، پس می شه پاکسازی رو سمت سرور یا توی تست ها هم انجام داد. ولی جای همه چیز رو نمی گیره. اگه فقط می خوای یه متن ساده نشون بدی، textContent یا escape معمولی ساده تره و اصلا لازم نیست HTML رو باز کنی. ولیدیشن سمت سرور هم سر جاش لازمه، چون DOMPurify فقط یه لایه دفاعیه، نه تنها لایه.

چند نکته موقع استفاده. پاکسازی رو درست قبل از قرار دادن توی DOM انجام بده، نه خیلی زودتر، و بعدش رشته رو دستکاری نکن، چون ممکنه امن بودنش از بین بره. تنظیم هایی مثل ALLOWED_TAGS و ALLOWED_ATTR اجازه می دن لیست مجاز رو تنگ تر کنی، ولی هر چی بازترش کنی ریسک بیشتر می شه. پس با پیش فرض ها شروع کن. این کتابخانه مرتب از نظر امنیتی بررسی می شه و گاهی راه های دور زدنش پیدا و رفع شده، برای همین بهتره نسخه رو به روز نگه داری. نسخه های رسمی و بدون تغییر DOMPurify توی مخزن داخلی ما هم در دسترسه و وقتی دسترسی به npm و CDN های خارجی قطع یا کند می شه، می تونی از همین جا برش داری.

راهنمای استفاده

قدم های کلی اینه:

  • فایل رو از همین صفحه بردار و روی هاست خودت بذار. اگه پروژه ات با npm کار می کنه، بسته dompurify رو با npm نصب کن.
  • کد آماده ای که پایین همین صفحه گذاشتیم رو به صفحه اضافه کن تا کتابخانه قبل از اسکریپت خودت لود بشه. توی قالب یا افزونه وردپرس، اسکریپت رو با wp_enqueue_script ثبت کن.
  • هر جا قبلا رشته HTML رو مستقیم توی innerHTML می ریختی، اول از تابع DOMPurify.sanitize رد کن و نتیجه رو بذار.
  • اگه فقط تگ های مشخصی می خوای، گزینه های ALLOWED_TAGS و ALLOWED_ATTR رو بده. اگه نمی خوای SVG یا MathML وارد بشه، از USE_PROFILES با پروفایل html استفاده کن.
  • توی Node.js اول با jsdom یه window بساز، بعد DOMPurify رو با اون راه بنداز.

بعد از اتصال، یه رشته تست با تگ script و یه تصویر با onerror بده و مطمئن شو خروجی تمیز برمی گرده. این تست چند ثانیه بیشتر وقت نمی بره و جلوی کلی دردسر رو می گیره.

همه نسخه‌ها (۵۹)

نسخه‌های ۳.x ۴۵ نسخه
  • ۳.۴.۱۷ آخرین نسخه ۸۴۷ کیلوبایت·
    دانلودنسخه 3.4.17
    نشانی مستقیم فایل اصلی 3.4.17 https://mirror.wbweb.ir/npm/dompurify@3.4.17/dist/purify.min.js
  • ۳.۴.۱۶ ۸۴۲ کیلوبایت·
    دانلودنسخه 3.4.16
    نشانی مستقیم فایل اصلی 3.4.16 https://mirror.wbweb.ir/npm/dompurify@3.4.16/dist/purify.min.js
  • ۳.۴.۱۵ ۹۸۸ کیلوبایت·
    دانلودنسخه 3.4.15
    نشانی مستقیم فایل اصلی 3.4.15 https://mirror.wbweb.ir/npm/dompurify@3.4.15/dist/purify.min.js
  • ۳.۴.۱۴ ۹۷۶ کیلوبایت·
    دانلودنسخه 3.4.14
    نشانی مستقیم فایل اصلی 3.4.14 https://mirror.wbweb.ir/npm/dompurify@3.4.14/dist/purify.min.js
  • ۳.۴.۱۳ ۹۵۵ کیلوبایت·
    دانلودنسخه 3.4.13
    نشانی مستقیم فایل اصلی 3.4.13 https://mirror.wbweb.ir/npm/dompurify@3.4.13/dist/purify.min.js
  • ۳.۴.۱۲ ۹۴۳ کیلوبایت·
    دانلودنسخه 3.4.12
    نشانی مستقیم فایل اصلی 3.4.12 https://mirror.wbweb.ir/npm/dompurify@3.4.12/dist/purify.min.js
  • ۳.۴.۱۱ ۹۱۳ کیلوبایت·
    دانلودنسخه 3.4.11
    نشانی مستقیم فایل اصلی 3.4.11 https://mirror.wbweb.ir/npm/dompurify@3.4.11/dist/purify.min.js
  • ۳.۴.۱۰ ۹۰۵ کیلوبایت·
    دانلودنسخه 3.4.10
    نشانی مستقیم فایل اصلی 3.4.10 https://mirror.wbweb.ir/npm/dompurify@3.4.10/dist/purify.min.js
  • ۳.۴.۹ ۳۴۸ کیلوبایت·
    دانلودنسخه 3.4.9
    نشانی مستقیم فایل اصلی 3.4.9 https://mirror.wbweb.ir/npm/dompurify@3.4.9/dist/purify.min.js
  • ۳.۴.۸ ۳۰۱ کیلوبایت·
    دانلودنسخه 3.4.8
    نشانی مستقیم فایل اصلی 3.4.8 https://mirror.wbweb.ir/npm/dompurify@3.4.8/dist/purify.min.js
  • ۳.۴.۷ ۲۹۳ کیلوبایت·
    دانلودنسخه 3.4.7
    نشانی مستقیم فایل اصلی 3.4.7 https://mirror.wbweb.ir/npm/dompurify@3.4.7/dist/purify.min.js
  • ۳.۴.۶ ۲۹۳ کیلوبایت·
    دانلودنسخه 3.4.6
    نشانی مستقیم فایل اصلی 3.4.6 https://mirror.wbweb.ir/npm/dompurify@3.4.6/dist/purify.min.js
  • ۳.۴.۵ ۲۶۷ کیلوبایت·
    دانلودنسخه 3.4.5
    نشانی مستقیم فایل اصلی 3.4.5 https://mirror.wbweb.ir/npm/dompurify@3.4.5/dist/purify.min.js
  • ۳.۴.۴ ۲۸۳ کیلوبایت·
    دانلودنسخه 3.4.4
    نشانی مستقیم فایل اصلی 3.4.4 https://mirror.wbweb.ir/npm/dompurify@3.4.4/dist/purify.min.js
  • ۳.۴.۳ ۲۷۵ کیلوبایت·
    دانلودنسخه 3.4.3
    نشانی مستقیم فایل اصلی 3.4.3 https://mirror.wbweb.ir/npm/dompurify@3.4.3/dist/purify.min.js
  • ۳.۴.۲ ۲۶۵ کیلوبایت·
    دانلودنسخه 3.4.2
    نشانی مستقیم فایل اصلی 3.4.2 https://mirror.wbweb.ir/npm/dompurify@3.4.2/dist/purify.min.js
  • ۳.۴.۱ ۲۶۵ کیلوبایت·
    دانلودنسخه 3.4.1
    نشانی مستقیم فایل اصلی 3.4.1 https://mirror.wbweb.ir/npm/dompurify@3.4.1/dist/purify.min.js
  • ۳.۴.۰ ۲۴۹ کیلوبایت·
    دانلودنسخه 3.4.0
    نشانی مستقیم فایل اصلی 3.4.0 https://mirror.wbweb.ir/npm/dompurify@3.4.0/dist/purify.min.js
  • ۳.۳.۳ ۲۴۸ کیلوبایت·
    دانلودنسخه 3.3.3
    نشانی مستقیم فایل اصلی 3.3.3 https://mirror.wbweb.ir/npm/dompurify@3.3.3/dist/purify.min.js
  • ۳.۳.۲ ۲۴۸ کیلوبایت·
    دانلودنسخه 3.3.2
    نشانی مستقیم فایل اصلی 3.3.2 https://mirror.wbweb.ir/npm/dompurify@3.3.2/dist/purify.min.js
  • ۳.۳.۱ ۲۴۶ کیلوبایت·
    دانلودنسخه 3.3.1
    نشانی مستقیم فایل اصلی 3.3.1 https://mirror.wbweb.ir/npm/dompurify@3.3.1/dist/purify.min.js
  • ۳.۳.۰ ۲۴۶ کیلوبایت·
    دانلودنسخه 3.3.0
    نشانی مستقیم فایل اصلی 3.3.0 https://mirror.wbweb.ir/npm/dompurify@3.3.0/dist/purify.min.js
  • ۳.۲.۷ ۲۴۳ کیلوبایت·
    دانلودنسخه 3.2.7
    نشانی مستقیم فایل اصلی 3.2.7 https://mirror.wbweb.ir/npm/dompurify@3.2.7/dist/purify.min.js
  • ۳.۲.۶ ۲۴۰ کیلوبایت·
    دانلودنسخه 3.2.6
    نشانی مستقیم فایل اصلی 3.2.6 https://mirror.wbweb.ir/npm/dompurify@3.2.6/dist/purify.min.js
  • ۳.۲.۵ ۲۴۰ کیلوبایت·
    دانلودنسخه 3.2.5
    نشانی مستقیم فایل اصلی 3.2.5 https://mirror.wbweb.ir/npm/dompurify@3.2.5/dist/purify.min.js
  • ۳.۲.۴ ۲۳۹ کیلوبایت·
    دانلودنسخه 3.2.4
    نشانی مستقیم فایل اصلی 3.2.4 https://mirror.wbweb.ir/npm/dompurify@3.2.4/dist/purify.min.js
  • ۳.۲.۳ ۲۳۸ کیلوبایت·
    دانلودنسخه 3.2.3
    نشانی مستقیم فایل اصلی 3.2.3 https://mirror.wbweb.ir/npm/dompurify@3.2.3/dist/purify.min.js
  • ۳.۲.۲ ۲۳۸ کیلوبایت·
    دانلودنسخه 3.2.2
    نشانی مستقیم فایل اصلی 3.2.2 https://mirror.wbweb.ir/npm/dompurify@3.2.2/dist/purify.min.js
  • ۳.۲.۱ ۲۳۷ کیلوبایت·
    دانلودنسخه 3.2.1
    نشانی مستقیم فایل اصلی 3.2.1 https://mirror.wbweb.ir/npm/dompurify@3.2.1/dist/purify.min.js
  • ۳.۲.۰ ۲۷۹ کیلوبایت·
    دانلودنسخه 3.2.0
    نشانی مستقیم فایل اصلی 3.2.0 https://mirror.wbweb.ir/npm/dompurify@3.2.0/dist/purify.min.js
  • ۳.۱.۷ ۲۴۳ کیلوبایت·
    دانلودنسخه 3.1.7
    نشانی مستقیم فایل اصلی 3.1.7 https://mirror.wbweb.ir/npm/dompurify@3.1.7/dist/purify.min.js
  • ۳.۱.۶ ۲۴۳ کیلوبایت·
    دانلودنسخه 3.1.6
    نشانی مستقیم فایل اصلی 3.1.6 https://mirror.wbweb.ir/npm/dompurify@3.1.6/dist/purify.min.js
  • ۳.۱.۵ ۲۴۳ کیلوبایت·
    دانلودنسخه 3.1.5
    نشانی مستقیم فایل اصلی 3.1.5 https://mirror.wbweb.ir/npm/dompurify@3.1.5/dist/purify.min.js
  • ۳.۱.۴ ۲۵۰ کیلوبایت·
    دانلودنسخه 3.1.4
    نشانی مستقیم فایل اصلی 3.1.4 https://mirror.wbweb.ir/npm/dompurify@3.1.4/dist/purify.min.js
  • ۳.۱.۳ ۲۵۰ کیلوبایت·
    دانلودنسخه 3.1.3
    نشانی مستقیم فایل اصلی 3.1.3 https://mirror.wbweb.ir/npm/dompurify@3.1.3/dist/purify.min.js
  • ۳.۱.۲ ۲۴۶ کیلوبایت·
    دانلودنسخه 3.1.2
    نشانی مستقیم فایل اصلی 3.1.2 https://mirror.wbweb.ir/npm/dompurify@3.1.2/dist/purify.min.js
  • ۳.۱.۱ ۲۴۶ کیلوبایت·
    دانلودنسخه 3.1.1
    نشانی مستقیم فایل اصلی 3.1.1 https://mirror.wbweb.ir/npm/dompurify@3.1.1/dist/purify.min.js
  • ۳.۱.۰ ۲۴۰ کیلوبایت·
    دانلودنسخه 3.1.0
    نشانی مستقیم فایل اصلی 3.1.0 https://mirror.wbweb.ir/npm/dompurify@3.1.0/dist/purify.min.js
  • ۳.۰.۱۱ ۲۳۸ کیلوبایت·
    دانلودنسخه 3.0.11
    نشانی مستقیم فایل اصلی 3.0.11 https://mirror.wbweb.ir/npm/dompurify@3.0.11/dist/purify.min.js
  • ۳.۰.۱۰ ۲۳۸ کیلوبایت·
    دانلودنسخه 3.0.10
    نشانی مستقیم فایل اصلی 3.0.10 https://mirror.wbweb.ir/npm/dompurify@3.0.10/dist/purify.min.js
  • ۳.۰.۹ ۲۳۷ کیلوبایت·
    دانلودنسخه 3.0.9
    نشانی مستقیم فایل اصلی 3.0.9 https://mirror.wbweb.ir/npm/dompurify@3.0.9/dist/purify.min.js
  • ۳.۰.۸ ۲۳۶ کیلوبایت·
    دانلودنسخه 3.0.8
    نشانی مستقیم فایل اصلی 3.0.8 https://mirror.wbweb.ir/npm/dompurify@3.0.8/dist/purify.min.js
  • ۳.۰.۷ ۲۳۶ کیلوبایت·
    دانلودنسخه 3.0.7
    نشانی مستقیم فایل اصلی 3.0.7 https://mirror.wbweb.ir/npm/dompurify@3.0.7/dist/purify.min.js
  • ۳.۰.۶ ۲۳۵ کیلوبایت·
    دانلودنسخه 3.0.6
    نشانی مستقیم فایل اصلی 3.0.6 https://mirror.wbweb.ir/npm/dompurify@3.0.6/dist/purify.min.js
  • ۳.۰.۵ ۲۳۰ کیلوبایت·
    دانلودنسخه 3.0.5
    نشانی مستقیم فایل اصلی 3.0.5 https://mirror.wbweb.ir/npm/dompurify@3.0.5/dist/purify.min.js
نسخه‌های ۲.x ۱۴ نسخه
  • ۲.۵.۹ ۲۴۵ کیلوبایت·
    دانلودنسخه 2.5.9
    نشانی مستقیم فایل اصلی 2.5.9 https://mirror.wbweb.ir/npm/dompurify@2.5.9/dist/purify.min.js
  • ۲.۵.۸ ۲۴۵ کیلوبایت·
    دانلودنسخه 2.5.8
    نشانی مستقیم فایل اصلی 2.5.8 https://mirror.wbweb.ir/npm/dompurify@2.5.8/dist/purify.min.js
  • ۲.۵.۷ ۲۴۵ کیلوبایت·
    دانلودنسخه 2.5.7
    نشانی مستقیم فایل اصلی 2.5.7 https://mirror.wbweb.ir/npm/dompurify@2.5.7/dist/purify.min.js
  • ۲.۵.۶ ۲۴۵ کیلوبایت·
    دانلودنسخه 2.5.6
    نشانی مستقیم فایل اصلی 2.5.6 https://mirror.wbweb.ir/npm/dompurify@2.5.6/dist/purify.min.js
  • ۲.۵.۵ ۲۴۵ کیلوبایت·
    دانلودنسخه 2.5.5
    نشانی مستقیم فایل اصلی 2.5.5 https://mirror.wbweb.ir/npm/dompurify@2.5.5/dist/purify.min.js
  • ۲.۵.۴ ۲۵۲ کیلوبایت·
    دانلودنسخه 2.5.4
    نشانی مستقیم فایل اصلی 2.5.4 https://mirror.wbweb.ir/npm/dompurify@2.5.4/dist/purify.min.js
  • ۲.۵.۳ ۲۵۱ کیلوبایت·
    دانلودنسخه 2.5.3
    نشانی مستقیم فایل اصلی 2.5.3 https://mirror.wbweb.ir/npm/dompurify@2.5.3/dist/purify.min.js
  • ۲.۵.۲ ۲۴۹ کیلوبایت·
    دانلودنسخه 2.5.2
    نشانی مستقیم فایل اصلی 2.5.2 https://mirror.wbweb.ir/npm/dompurify@2.5.2/dist/purify.min.js
  • ۲.۵.۱ ۲۴۹ کیلوبایت·
    دانلودنسخه 2.5.1
    نشانی مستقیم فایل اصلی 2.5.1 https://mirror.wbweb.ir/npm/dompurify@2.5.1/dist/purify.min.js
  • ۲.۵.۰ ۲۴۳ کیلوبایت·
    دانلودنسخه 2.5.0
    نشانی مستقیم فایل اصلی 2.5.0 https://mirror.wbweb.ir/npm/dompurify@2.5.0/dist/purify.min.js
  • ۲.۴.۹ ۲۴۲ کیلوبایت·
    دانلودنسخه 2.4.9
    نشانی مستقیم فایل اصلی 2.4.9 https://mirror.wbweb.ir/npm/dompurify@2.4.9/dist/purify.min.js
  • ۲.۴.۸ ۲۴۲ کیلوبایت·
    دانلودنسخه 2.4.8
    نشانی مستقیم فایل اصلی 2.4.8 https://mirror.wbweb.ir/npm/dompurify@2.4.8/dist/purify.min.js
  • ۲.۳.۵ ۲۱۰ کیلوبایت·
    دانلودنسخه 2.3.5
    نشانی مستقیم فایل اصلی 2.3.5 https://mirror.wbweb.ir/npm/dompurify@2.3.5/dist/purify.min.js
  • ۲.۲.۳ قدیمی‌ترین نسخه ۱۷۰ کیلوبایت·
    دانلودنسخه 2.2.3
    نشانی مستقیم فایل اصلی 2.2.3 https://mirror.wbweb.ir/npm/dompurify@2.2.3/dist/purify.min.js

پرسش‌های رایج

  • یه کتابخانه جاوااسکریپت برای پاکسازی HTML، SVG و MathML از کدهای مخرب XSS هست. وقتی محتوایی از کاربر یا منبع بیرونی داری و می خوای با HTML توی صفحه نشونش بدی، DOMPurify اسکریپت ها و ویژگی های خطرناک رو حذف می کنه و بقیه محتوای سالم رو سر جاش نگه می داره.

  • نه. DOMPurify یه لایه دفاعی موقع نمایش و پردازش HTML هست، ولی ورودی کاربر باید سمت سرور هم بررسی و فیلتر بشه. هر دو لایه رو داشته باش. اگه فقط متن ساده نشون می دی، escape معمولی یا textContent کافیه و نیازی به باز کردن HTML نیست.

  • آره، با jsdom کار می کنه. DOMPurify به یه DOM نیاز داره و Node.js خودش نداره، پس اول با jsdom یه window می سازی و DOMPurify رو باهاش راه می ندازی. این روش برای پاکسازی سمت سرور، رندر قالب و نوشتن تست هم به کار میاد.

  • وردپرس سمت سرور توابع پاکسازی خودش رو داره، مثل wp_kses. ولی وقتی افزونه یا قالبت HTML رو توی مرورگر با جاوااسکریپت می سازه، مثلا از یه API یا یه فرم زنده، اون توابع وارد کار نمی شن. اونجا یه پاک کننده سمت مرورگر مثل DOMPurify به کارت میاد.

  • آره. با گزینه هایی مثل ALLOWED_TAGS و ALLOWED_ATTR لیست مجاز رو خودت تعیین می کنی و با گزینه های FORBID هم می شه چیزهای مشخصی رو ممنوع کرد. بهتره با تنظیم پیش فرض شروع کنی و فقط وقتی واقعا لازم شد لیست رو تغییر بدی.

چیزی که لازم دارید اینجا نیست؟

نام کتابخانه، افزونه یا قالب را بفرستید؛ پس از بررسی، نسخه‌های رسمی آن به مخزن اضافه می‌شود.