درباره افزونه سیف اسویجی Safe SVG
داستان Safe SVG به یه مشکل قدیمی وردپرس برمیگرده. از همون روزهای اول، وردپرس بهخاطر خطرات امنیتی فرمت SVG (که میتونه کد جاوااسکریپت داخلش پنهان باشه) اجازه آپلود این فایلها رو نمیداد. یه تیکت در Trac وردپرس به شماره ۲۴۲۵۱ سالهاست بازه و هنوز بسته نشده. توسعهدهنده اصلی افزونه Daryll Doyle بود که یه کتابخانه مستقل به اسم svg-sanitizer نوشت و بعد دورش یه افزونه وردپرس ساخت تا این مشکل رو حل کنه. بعدها شرکت آمریکایی 10up که یکی از معتبرترین آژانسهای وردپرس دنیاست، پروژه رو تحویل گرفت و الان نگهداری و توسعهاش رو برعهده داره. نسخه فعلی ۲.۴.۰ هست و آخرین بار آوریل ۲۰۲۶ آپدیت شده. کارش سه چیز اصلیه. اول، هر SVG که آپلود میکنی رو قبل از ذخیره شدن ضدعفونی (sanitize) میکنه؛ یعنی تگها و attribute های خطرناک رو پاک میکنه. دوم، پیشنمایش SVG رو توی کتابخانه رسانه وردپرس نشون میده؛ چیزی که بهصورت پیشفرض وردپرس بلد نیست. سوم، میتونی تعیین کنی کدوم نقشهای کاربری (مثلاً فقط ادمین یا ویراستار) حق آپلود SVG دارن. یه قابلیت اختیاری هم داره به اسم SVGO Optimization که فایل SVG رو موقع آپلود فشرده میکنه و حجمش رو کم میکنه؛ ولی این قابلیت بهصورت پیشفرض خاموشه و باید با یه فیلتر فعالش کنی. برای کاربر ایرانی، یکی از مزیتهای اصلی اینه که این افزونه هیچ وابستگی به سرویس خارجی نداره. کل فرایند sanitize روی سرور خودت انجام میشه، نه روی یه CDN یا API خارجی که ممکنه فیلتر باشه یا تحریم. توی هاستهای اشتراکی ایرانی هم بدون دردسر کار میکنه. برای سایتهایی که از SVG برای لوگو، آیکونهای منو، یا المانهای طراحی استفاده میکنن، این افزونه یه راهحل سبک و بیدردسره که نه به SMTP نیاز داره، نه به درگاه پرداخت، نه به هیچ سرویس خارجی دیگهای. ولی محدودیتهایی هم داره که باید بدونی. اول اینکه 10up رسماً اعلام کرده دیگه قابلیت جدیدی به این افزونه اضافه نمیکنه و فقط نگهداری امنیتیش رو ادامه میده. دوم، اگه از پلاگینهایی مثل WooCommerce یا فرمسازهایی استفاده میکنی که مسیر آپلود سفارشی دارن، ممکنه Safe SVG نتونه همه اون مسیرها رو پوشش بده و SVG از اونها رد بشه بدون sanitize. سوم، قابلیت inline کردن SVG (که برای تغییر رنگ با CSS لازمه) رو نداره. توصیه عملی: اگه فقط میخوای لوگو یا آیکون SVG آپلود کنی و امنیت برات مهمه، این افزونه گزینه خوبیه. ولی اگه نیاز داری SVG رو inline کنی و با CSS استایل بدی، به افزونهای مثل SVG Support نگاه بنداز.
راهنمای نصب افزونه
- فایل ZIP افزونه را با کلیک روی دکمه «دانلود نسخه 2.4.0» در بالای همین صفحه دریافت کنید. فایل از سرور WPFORIRAN در ایران ارائه میشود و نیاز به VPN ندارد.
- وارد پنل مدیریت وردپرس خود شوید و به مسیر «افزونهها → افزودن → بارگذاری افزونه» بروید.
- فایل ZIP دانلود شده (safe-svg-2.4.0.zip) را انتخاب و آپلود کنید.
- پس از پایان نصب، روی دکمه «فعالسازی افزونه» کلیک کنید.
- افزونه سیف اسویجی Safe SVG اکنون آماده استفاده است. برای تنظیمات، به منوی مربوطه در پنل وردپرس مراجعه کنید.
تغییرات نسخه 2.4.0
- Added: Ability to upload SVGs from more admin locations (props @stormrockwell, @darylldoyle, @wpexplorer, @smerriman, @jeffpaul, @dkotter via #279).
- Changed: Added $attachment_id argument to filters safe_svg_use_width_height_attributes and safe_svg_dimensions (props @roborourke, @dkotter via #278).
- Fixed: Inconsistent or incorrect data type for $svg argument in the filters safe_svg_use_width_height_attributes and safe_svg_dimensions (props @roborourke, @dkotter via #278).
- Security: Update the enshrined/svg-sanitize package from 0.19.0 to 0.22.0 to fix an issue with case-insensitive attributes slipping through the sanitiser and address PHP 8.4 deprecation warnings (props @darylldoyle, @sudar, @georgestephanis, @dkotter, @realazizk via #268, #272).