WordPress за замовчуванням не дозволяє завантаження SVG-файлів, оскільки цей XML-формат файлів може містити шкідливий код. Це може бути особливо небезпечно, коли файли завантажуються з невідомих/недовірених джерел або недовіреними користувачами.
Як активувати підтримку SVG
Ви можете активувати завантаження SVG на основі ролі користувача в розділі Esl > Налаштування > Завантаження SVG (вкладка: Загальні). Після активації Esl спробує очистити будь-які завантажені SVG-файли.
Важливо зазначити, що жоден вбудований очищувач SVG не має 100% гарантії видалення всього шкідливого коду. Тому вам слід завантажувати SVG-файли тільки з довірених джерел і активувати завантаження SVG лише для ролей користувачів, яким ви довіряєте дотримуватися цього правила.
Обхід очищення
Хоча доцільно очищати всі SVG-файли, завантажені в WordPress, може виникнути ситуація, коли ви не хочете покладатися на очищувач SVG Esl. Щоб обійти логіку очищення, Esl надає хук esl/svg/bypass_sanitization
, і ви можете використовувати його таким чином:
add_filter( 'esl/svg/bypass_sanitization', function( $bypass, $file ) {// Виконайте якусь логіку, щоб вирішити, обходити очищення чи ніreturn $bypass;}, 10, 2 );
Параметри зворотного виклику фільтра:
$bypass
– булева змінна (true
= обхід)$file
представляє один елемент масиву $_FILES
Якщо ви просто хочете обійти очищення без умов, ви можете використати цей короткий підхід:
add_filter( 'esl/svg/bypass_sanitization', '__return_true' );
Дозволені теги та атрибути очищувача
Очищувач використовує попередньо визначений список дозволених тегів та атрибутів. У деяких крайніх випадках ви хочете завантажити SVG-файли, які містять інші теги та атрибути, тому вам потрібно включити їх у дозволений список. Або, можливо, ви хочете звузити дозволені теги та атрибути з міркувань безпеки. Щоб керувати цими списками, Esl має два різні фільтри:
add_filter( 'esl/svg/allowed_tags', function( $tags ) {$tags[] = 'filter'; // Дозволити тег "filter"return $tags;} );
add_filter( 'esl/svg/allowed_attributes', function( $attributes ) {$attributes[] = 'filterUnits'; // Дозволити атрибут "filterUnits"return $attributes;} );