ایجاد: ۲۳:۱۰ ۱۳۹۱/۶/۱۰
ویرایش: ۱۱:۵۱ ۱۳۹۲/۱۱/۲۷

آموزش‌ها

»

تنظیم اچ‌تی‌ام‌ال پیوریفایر

زمانی که بخواهیم یک متن ساده را امن کنیم، معمولا از تابع htmlentities استفاده می‌کنیم:
echo $_POST['message'];  //  خطرناک
echo htmlentities($_POST['message'], ENT_QUOTES, 'UTF-8');  //  امن

اما اگر متن ما حاوی تگ‌های html باشد (مثلا توسط یک ادیتور wysiwug تهیه شده باشد) آنگاه لازم است تگ‌های صحیح و مفید را حفظ کنیم و تگ‌های نامطلوب یا خطرساز را حذف کنیم. انجام این کار به صورت دستی یا با تکیه بر حالات معدودی که سراغ داریم، کار صحیحی نیست و بهتر است از کتابخانه‌هایی که در این زمینه وجود دارد، استفاده کنیم. یکی از بهترین این کتابخانه‌ها که دائما هم بروزرسانی می‌شود و تیم فعالی دارد، HTML Purifier است.

htmlpurifier یک کتابخانه بسیار قدرتمند است که به زبان php نگاشته شده و هدف آن؛ تصحیح نشانه‌گذاری html و همچنین دفع خطر حملات xss می‌باشد. جهت استفاده از آن می‌توان به با یک تنظیم اولیه ساده، اینگونه عمل کرد:

include(dirname(__FILE__).'/htmlpurifier-4.7.0/HTMLPurifier.auto.php');
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8');
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$purifier = new HTMLPurifier($config);

echo $_POST['message'];  //  خطرناک
echo $purifier->purify($_POST['message']);  // امن
اما در صورتی که بخواهید از قابلیت‌های این برنامه بیشتر استفاده کنید، می‌توانید با مطالعه Configuration Documentation و Customize HTMLPurifier به اطلاعات بیشتری دست پیدا کنید. یک نمونه تنظیم پیشرفته:
include(dirname(__FILE__).'/htmlpurifier-4.7.0/HTMLPurifier.auto.php');

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.TidyLevel', 'heavy');
$config->set('Core.Encoding', 'UTF-8');
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config->set('HTML.TargetBlank', true);
$config->set('HTML.Attr.Name.UseCDATA', true);
$config->set('HTML.Allowed', 'h1[class], h2[class], h3[class], img[class|alt|src], a[class|href|title|target|rel], p[class], div[class], span[class], br, hr, blockquote[class], ul[class], ol[class], li[class], table[class], tr[class], th[class], td[class]');
$config->set('Attr.AllowedClasses', array('c', 'j', 'l', 'r', 'pd9', 'mr9', 'r9', 'brdr', 'grn', 'ltr'));
$config->set('AutoFormat.RemoveEmpty', true);
$config->set('AutoFormat.Linkify', true);
$config->set('AutoFormat.RemoveSpansWithoutAttributes', true);
$config->set('Attr.DefaultImageAlt', '[image]');

$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'target', 'Enum#_blank');
$def->addAttribute('a', 'rel', 'Enum#nofollow');

$purifier = new HTMLPurifier($config);

$yourText = $purifier->purify($yourText);


یادداشت‌های مرتبط
  1. موثرترین روش برنامه‌نویسان برای مقابله با کی‌لاگر ها
  2. ارتقاء امنیت وردپرس
  3. API چیست؟
  4. آشنایی با دو قابلیت جدید مرورگرها: WebRTC و ضبط صدا و تصویر!
  5. لیست مواردی که برای امنیت برنامه PHP لازم است چک شود
  6. امنیت در انگولر جی‌اس
  7. انواع روش‌های شناسایی و احراز هویت کاربران یک صفحه وب
  8. پیشگیری از حملات جعل درخواست بین سایتی
  9. حملات ضدامنیتی XSS یا تزریق کد

مدیریت

نام وسیله

اعتبار ورود

نام کاربری

رمز عبور

رمز یکبارمصرف

... لیست تمام آموزش‌ها

تبلیغات

ربات‌های تلگرامی:
مجموعه ربات‌های تلگرامی ما برای ساده‌تر کردن کار با تلگرام و مدیریت کانال و ...
خرید هاست (فضا):
دنبال یک هاست به صرفه برای شروع کار می‌گردید؟
مشخصات و قیمت‌های این مورد رو ببینید. من سال‌ها مشتری‌شون بودم و پشتیبانی‌شون هم خوب بود.
دامنه‌های فروشی:
دامنه‌های زیر مربوط به ما یا مشتریان ماست که قابل فروش هستند. در صورت تمایل به خرید یکی از آنها، مبلغ پیشنهادی را از طریق فرم ارتباطی برای ما ارسال نمایید.

دامنه‌هایی که می‌تواند مصرف مذهبی داشته باشد:
دامنه‌هایی که می‌تواند مصرف تخصصی داشته باشد:
دامنه‌هایی که می‌تواند مصرف شخصی/عمومی داشته باشد: