آپلود SVG
وردپرس بهطور پیشفرض آپلود فایل SVG را مجاز نمیکند چون این فرمت مبتنی بر XML است و میتواند کد مخرب داشته باشد — بهویژه اگر از منابع ناشناخته یا توسط کاربران غیرقابل اعتماد دانلود شود.
نحوه فعالسازی پشتیبانی SVG
میتوانید آپلود SVG را بهازای نقش کاربری در بریکس (Bricks) > تنظیمات (Settings) > SVG Uploads (تب General) فعال کنید. پس از فعالسازی، Bricks تلاش میکند همه فایلهای SVG آپلودشده را sanitize کند.
یادداشت
هیچ sanitizer داخلی SVG تضمین ۱۰۰٪ حذف همه کدهای مخرب را نمیدهد. بنابراین SVG را فقط از منابع معتبر دانلود کنید و آپلود SVG را فقط برای نقشهایی فعال کنید که به آنها اعتماد دارید.
دور زدن sanitize
sanitize همه SVGهای آپلودشده به وردپرس منطقی است، اما ممکن است بخواهید به sanitizer Bricks تکیه نکنید. برای دور زدن منطق sanitize، Bricks hook bricks/svg/bypass_sanitization را فراهم میکند:
add_filter( 'bricks/svg/bypass_sanitization', function( $bypass, $file ) {
// Perform some logic to decide to bypass or not the sanitization
return $bypass;
}, 10, 2 );
پارامترهای callback فیلتر:
$bypassمتغیر boolean است (true= bypass)$fileیک عنصر از آرایه$_FILESرا نشان میدهد
برای bypass بدون شرط:
tagها و attributeهای مجاز sanitizer
sanitizer از لیست از پیشتعریفشده tag و attribute مجاز استفاده میکند. در موارد خاص ممکن است SVG شامل tag/attribute دیگری باشد و بخواهید آنها را به لیست مجاز اضافه یا برای امنیت بیشتر محدود کنید. Bricks دو فیلتر دارد: