Опис
Safe SVG — найкращий спосіб дозволити завантаження SVG-файлів у WordPress!
Це дає вам можливість дозволити завантаження SVG-файлів, одночасно гарантуючи їх очищення, щоб запобігти впливу вразливостей SVG/XML на ваш сайт. Це також дає вам можливість переглядати завантажені SVG-файли в медіабібліотеці у всіх видах.
Поточні Функції
- Очищені SVG-файли – не створюйте дірок у безпеці вашого сайту WordPress, дозволяючи завантажувати неочищені файли.
- Оптимізація SVGO – Завантажує ваші SVG-зображення за допомогою інструмента SVGO, щоб заощадити місце. Ця функція вимкнена за замовчуванням, але її можна ввімкнути, додавши наступний код:
add_filter( 'safe_svg_optimizer_enabled', '__return_true' ); - Перегляд SVG-файлів у Бібліотеці Медіа — минули часи, коли доводилося гадати, який SVG-файл є правильним. Ми ввімкнемо попередній перегляд SVG-файлів у медіабібліотеці WordPress.
- Виберіть, хто може Завантажувати файли — обмежте завантаження SVG певними користувачами на вашому сайті WordPress або дозвольте завантажувати файли будь-кому.
Спочатку це було підтвердження концепції для #24251.
Очищення SVG виконується за допомогою такої бібліотеки: https://github.com/darylldoyle/svg-sanitizer.
Оптимізація SVG здійснюється за допомогою наступної бібліотеки: https://github.com/svg/svgo.
Блоки
Цей плагін надає 1 блок.
- Safe SVG Display the SVG icon
Встановлення
Встановіть через каталог WordPress або завантажте, розпакуйте та завантажте файли до каталогу /wp-content/plugins/.
Часті питання
-
Так, це можна зробити за допомогою фільтрів
svg_allowed_attributesтаsvg_allowed_tags.
Вони приймають один аргумент, який має бути повернутий. Дивіться приклади нижче:add_filter( 'svg_allowed_attributes', function ( $attributes ) { // Do what you want here... // This should return an array so add your attributes to // to the $attributes array before returning it. E.G. $attributes[] = 'target'; // This would allow the target="" attribute. return $attributes; } ); add_filter( 'svg_allowed_tags', function ( $tags ) { // Do what you want here... // This should return an array so add your tags to // to the $tags array before returning it. E.G. $tags[] = 'use'; // This would allow the <use> element. return $tags; } );
Відгуки
Учасники та розробники
“Safe SVG” — проект з відкритим вихідним кодом. В розвиток плагіну внесли свій вклад наступні учасники:
Учасники“Safe SVG” було перекладено на 29 локалізацій. Дякуємо перекладачам за їх роботу.
Перекладіть “Safe SVG” на вашу мову.
Цікавитесь розробкою?
Перегляньте код, перегляньте сховище SVN або підпишіться на журнал розробки за допомогою RSS.
Журнал змін
2.4.0 – 2025-09-22
- Додано: Можливість завантажувати SVG-файли з більшої кількості розділів адміністративної панелі (дякуємо @stormrockwell, @darylldoyle, @wpexplorer, @smerriman, @jeffpaul, @dkotter через #279).
- Змінено: Додано аргумент
$attachment_idдо фільтрівsafe_svg_use_width_height_attributesтаsafe_svg_dimensions(за пропозицією @roborourke, @dkotter через #278). - Виправлено: Неузгодженість або неправильний тип даних для аргументу
$svgу фільтрахsafe_svg_use_width_height_attributesтаsafe_svg_dimensions(автор @roborourke, @dkotter через #278).
2.3.3 – 2025-08-13
- Безпека: Оновіть пакет
enshrined/svg-sanitizeз0.19.0до0.22.0, щвиправити проблему з атрибутами без урахування регістру, що прослизають через санітайзер, та звернути увагу на попередження про застарівання PHP 8.4 (props @darylldoyle, @sudar, @georgestephanis, @dkotter, @realazizk через #268, #272). - Безпека: Оновлено
form-dataз версії 4.0.0 до 4.0.4 (props @dependabot, @faisal-alvi через #270). - Безпека: Оновлено
tmpз 0.2.3 до 0.2.5 та@inquirer/editorз 4.2.9 до 4.2.16 (props @dependabot, @dkotter через #271).
2.3.2 – 2025-07-21
- Виправлено: Візуальна парність між фронтендом та редактором блоків (props @s3rgiosan, @dkotter через #261, #266).
- Змінено: Підвищено рівень WordPress, «протестовано» до версії 6.8 (props @godleman, @jeffpaul, @dkotter через #251, #254).
- Змінено: Збільшено мінімальну підтримувану версію WordPress до 6.6 (props @godleman, @jeffpaul, @dkotter через #254).
- Безпека: Оновлено
wsз 7.5.10 до 8.18.0,@wordpress/scriptsз 27.9.0 до 30.6.0,nanoidз 3.3.7 до 3.3.8 таmochaз 10.2.0 до 11.0.1 (props @dependabot, @peterwilsoncc через #245). - Безпека: Оновлено
@babel/runtimeз 7.23.9 до 7.27.0,axiosз 1.7.4 до 1.8.4,cookieз 0.4.2 до 0.7.1,expressз 4.21.0 до 4.21.2 та@wordpress/e2e-test-utils-playwrightз 0.26.0 до 1.20.0 (props @dependabot, @dkotter через #250). - Безпека: Оновлено
http-proxy-middlewareз версії 2.0.6 до 2.0.9 (props @dependabot, @iamdharmesh через #253). - Безпека: Оновлено
expressз версії 4.18.2 до 4.19.2 (props @dependabot, @dkotter через #188). - Безпека: Збільшено
байтиз версії 3.0.0 до 3.1.2 тастисненняз версії 1.7.4 до 1.8.1 (props @dependabot, @dkotter через #265).
2.3.1 – 2024-12-05
- Виправлено: Скасовано зміни, внесені до способу визначення користувацьких розмірів для SVG (props @dkotter, @martinpl, @subfighter3, @smerriman, @gigatyrant, @jeffpaul, @iamdharmesh через #238).
2.3.0 – 2024-11-25
- Додано: Новий параметр, який дозволяє завантажувати та належним чином очищувати великі SVG-файли (приблизно 10 МБ або більше) (props @kirtangajjar, @faisal-alvi, @darylldoyle, @manojsiddoji, @dkotter через #201).
- Додано: Нова функція
get_svg_dimensionsдля зменшення дублювання коду (props @gabriel-glo, @jeremymoore, @darylldoyle, @iamdharmesh, @dkotter через #216). - Змінено: Оновлено пакет
enshrined/svg-sanitizeз версії 0.16.0 до 0.19.0, щоб виправити проблему сумісності з PHP 8.3 (props @sksaju, @TylerB24890, @darylldoyle, @rolf-yoast, @faisal-alvi через #214). - Змінено: Оновлено спосіб передачі розмірів зображення в методах
get_image_tag_overrideтаone_pixel_fix(props @gabriel-glo, @jeremymoore, @darylldoyle, @iamdharmesh, @dkotter через #216). - Змінено: Оновлено WordPress, “протестований до” версії 6.7 (props @colinswinney, @jeffpaul через #232, #233).
- Змінено: Збільшено мінімальну версію WordPress з 6.4 до 6.5 (props @colinswinney, @jeffpaul через #232, #233).
- Змінено: Видалено залежності розробника композитора з архівованого проєкту (props @TylerB24890, @szepeviktor, @peterwilsoncc через #220).
- Виправлено: Використовуйте відповідну категорію блоку для блоку Safe SVG Icon (props @kirtangajjar, @fabiankaegy через #226).
- Безпека: Дозволяйте завантаження файлів типу SVG лише за умови, що наш засіб очищення може працювати з цими файлами (props @darylldoyle, @xknown, @dkotter через #228).
- Безпека: Оновлено
webpackз версії 5.90.1 до 5.94.0 (props @dependabot, @peterwilsoncc через #222). - Безпека: Оновлено
wsз 7.5.10 до 8.18.0,serve-staticз 1.15.0 до 1.16.2 таexpressз 4.19.2 до 4.21.0 (props @dependabot, @Sidsector9, @faisal-alvi через #227, #230, #234).
2.2.6 – 2024-08-28
- Змінено: Оновлено WordPress, “протестований до” версії 6.6 (props @sudip-md, @ankitguptaindia, @jeffpaul через #212, #213).
- Змінено: Підвищено мінімальну версію WordPress з 5.7 до 6.4 (props @sudip-md, @ankitguptaindia, @jeffpaul через #212, #213).
- Безпека: Додано очищення svg для фільтра
wp_handle_sideload_prefilter(props @dkotter, @xknown, @iamdharmesh через GHSA-3vr7-86pg-hf4g). - Безпека: Оновлено
bracesз версії 3.0.2 до 3.0.3,pac-resolverз версії 7.0.0 до 7.0.1,socksз версії 2.7.1 до 2.8.3,wsз версії 7.5.9 до 7.5.10 та видаленоip(props @dependabot, @Sidsector9 через #206). - Безпека: Оновлено
axiosз версії 1.6.7 до 1.7.4 (props @dependabot, @faisal-alvi через #218).
