Как безопасно загрузить SVG в WordPress без взлома через файл?

svg wordpress bezopasno zagruzit cover Без рубрики
Пошагово: почему WordPress блокирует SVG, установка Safe SVG, ограничение роли администратора, проверка файла в блокноте и что делать, если плагин отклонил загрузку.

Алексей открыл студию йоги: логотип в PNG на телефоне мыльный, дизайнер прислала logo.svg. WordPress ответил: «Извините, этот тип файла недопустим по соображениям безопасности». На форуме нашёл код для functions.php, чуть не вставил — пишут про взлом через файл. Непонятно, чем SVG опаснее обычной картинки. Ниже — путь без программиста: плагин-фильтр, проверка файла и загрузка только для администратора. Сегодня вы настроите Safe SVG и получите результат: логотип в медиабиблиотеке без ошибки MIME.

WordPress блокирует SVG не из вредности: это не картинка, а текстовый файл (XML), внутри которого может спрятаться чужой код. Безопасный путь для владельца сайта — плагин с очисткой при загрузке (Safe SVG или SVG Support 2.5.17+), а не одна строка «разрешить svg» из интернета. Загрузку оставьте только себе как администратору. Файл берите у дизайнера и гляньте в блокноте: нет слов script и onload.

SVG нужен для чёткого логотипа без тяжёлых PNG. WordPress не пускает формат «из коробки» — и это разумно. Ниже — почему появляется ошибка, как включить «досмотр багажа» и что проверить до клика «Загрузить».

Разберитесь, почему WordPress отказывает в SVG

Схема на прилавке: почему WordPress блокирует SVG

JPG и PNG — готовые картинки. SVG (векторная графика) — текстовый файл: откройте в Блокноте, увидите path и circle. Туда можно вписать скрипт — при показе «логотипа» чужой код сработает в браузере посетителя (XSS — внедрение кода через страницу).

Типичная ошибка: думать, что WordPress «не любит вектор». На практике система защищает медиатеку от файлов, которые выглядят как картинка, а ведут себя как мини-страница. Пока нет безопасного способа загрузки, любой .svg упрётся в ошибку — даже честный файл от дизайнера.

Нюанс из документации Safe SVG: плагин не включает SVG глобально. Если разрешить MIME-тип через upload_mimes (список форматов WordPress) без очистки, файл может пройти обходом и остаться «грязным». «Разрешить SVG одной строкой» и «безопасно разрешить» — разные задачи.

Установите Safe SVG и ограничьте загрузку администратором

Чеклист: Safe SVG и роль администратора

Для владельца без разработчика прямой путь — Safe SVG (1+ млн установок, версия 2.5.0). Файл проходит очистку enshrined/svg-sanitize: опасные теги вырезаются. Если не удалось — ошибка «couldn’t be sanitized»: это защита, не поломка.

Пошагово — сделайте шесть действий в админке WordPress:

  1. Откройте «Плагины → Добавить новый», найдите Safe SVG, установите и активируйте.
  2. В настройках плагина (или в «Настройки → Safe SVG») отметьте, кто может загружать SVG. Оставьте только роль «Администратор».
  3. Убедитесь, что плагин обновлён до свежей версии — в 2.5.0 обновили пакет очистки с исправлениями безопасности.
  4. Перейдите в «Медиафайлы → Добавить новый».
  5. Выберите logo.svg с компьютера (файл от дизайнера, не с сомнительного сайта иконок).
  6. После загрузки откройте медиабиблиотеку: превью и название файла должны отображаться без ошибки MIME.

Схема безопасной загрузки: доверенный файл от дизайнера → Safe SVG активен → только администратор → Медиафайлы → Добавить → превью в библиотеке → вставка в блок «Изображение» или шапку темы.

Алексей так и сделал: не трогал functions.php, оставил загрузку себе, проверил файл в блокноте — логотип встал на главную без размытия.

Проверьте SVG-файл до загрузки в медиабиблиотеку

Проверка SVG в блокноте перед загрузкой

Боль «боюсь файла из интернета» снимается простым чек-листом. Не нужно быть программистом — достаточно Блокнота и здравого смысла.

  • Источник: файл от дизайнера, из брендбука или экспорта из Figma/Illustrator. Не качайте «пак иконок» с неизвестного лендинга.
  • Расширение: обычный .svg, не .svgz (сжатый архив). В 2026 году у плагина SVG Support нашли уязвимость CVE-2026-13340 именно из-за .svgz до версии 2.5.17 — для логотипа салона сжатый формат не нужен.
  • Размер: ориентир до 50 КБ для простого лого. Огромный файл с лишними данными чаще ломается при очистке.
  • Взгляд в блокнот: откройте файл правой кнопкой → «Открыть с помощью» → Блокнот. Красные флаги: слова script, onload, javascript:, iframe, внешние ссылки на чужие домены.
  • Норма: видны svg, path, rect, circle, fill — без исполняемого кода.

Честный логотип — десятки строк с координатами. Если видите <script> или onload= — попросите дизайнера экспорт «для web».

Избегайте типичных ошибок с SVG на WordPress

Часто ломается не плагин, а привычки владельца. Вот что не делать:

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)
  • Голый код upload_mimes из форума. Официальный хук WordPress меняет список типов файлов, но сам файл не чистит. Если на сайте появится автор блога или менеджер, дыра станет реальной.
  • Разрешить SVG всем ролям. Даже с плагином очистки атака возможна только от того, кто может грузить файлы. Оставьте право администратору.
  • Игнорировать обновления плагина. «Безопасный» плагин тоже ошибается — история с .svgz в SVG Support это показала. Обновляйте до 2.5.17 и выше.
  • Скачивать SVG-паки «как попало». Иконки с бесплатных каталогов без проверки — частый источник мусора и скрытого кода.

Типичная ошибка: плагин есть, роли забыли — редактор грузит файлы с биржи. Безопасность SVG — фильтр на входе и дисциплина «кто кладёт в медиатеку».

Сравните плагины, если Safe SVG не подошёл

Критерий Safe SVG SVG Support (2.5.17+) WP SVG Images
Простота для новичка Высокая: установил, ограничил роль, загрузил Средняя: больше настроек, в т.ч. inline-режим Высокая: минимум кнопок
Очистка при загрузке Да, enshrined/svg-sanitize Да, с патчем для .svgz Да, отклоняет вредоносные файлы
Кому доверять загрузку Настройка ролей в плагине Role-based access Настройка ролей
На что смотреть Не полагаться на голый upload_mimes Обновиться минимум до 2.5.17 Подойдёт для лёгкого сайта услуг

Итоговый вердикт: для первого логотипа без кода начните с Safe SVG. Если нужны тонкие настройки отображения в контенте — SVG Support, но только свежая версия. Не ставьте три плагина одновременно — они конфликтуют.

Что делать, если SVG загрузился, но не виден в библиотеке

Файл прошёл очистку, а превью пустое — часто это норма для вектора. Inline-режим вставляет код прямо в страницу; на сайте услуг хватит блока «Изображение». После смены темы проверьте логотип в «Внешний вид». Ошибка sanitization — в файле лишнее; попросите экспорт «для web» или PNG/WebP. Не отключайте защиту — лучше запасной PNG, чем «грязный» вектор.

Как понять, что настройка сработала

Перед FAQ сверьте чеклист успеха — вы поймёте, что задача закрыта:

  1. Плагин с очисткой (Safe SVG или аналог) активен и обновлён до свежей версии.
  2. Загружать SVG может только администратор — не авторы и не менеджеры магазина.
  3. Тестовый logo.svg из доверенного источника (.svg, не .svgz) загружается без ошибки MIME.
  4. Файл виден в медиабиблиотеке и открывается на сайте в нужном месте.
  5. При попытке загрузить заведомо «грязный» файл (с script в блокноте) плагин отклоняет его с сообщением, а не молча сохраняет.
  6. Вы сможете вставить логотип в шапку или блок «Изображение» без размытия на телефоне.

Когда все пять пунктов выполнены, SVG загружен безопасно: чёткий логотип, без дыры для чужого кода. Дальше — порядок в медиабиблиотеке и защита входа в админку.

Не уверены в файле или ролях — напишите через форму или Telegram. Настройка WordPress — в услугах, гайды — в статьях.

Материал проверен: Андрей Дикий — настраивает WordPress для малого бизнеса и ведёт блог про SEO/GEO.
Источники и факты: каталоги wordpress.org/plugins/safe-svg и svg-support (2.5.0 и 2.5.17+), хук upload_mimes на developer.wordpress.org, разборы wp-kama.ru и wpevo.ru, CVE-2026-13340 (SentinelOne), код github.com/10up/safe-svg; LSI — по SERP 16.09.2026; показы Вордстат не сверялись (MCP недоступен).

Частые вопросы

Можно ли загрузить SVG в WordPress без плагина?

Теоретически — через код в functions.php и хук upload_mimes. Для владельца бизнеса это риск: файл не очищается, а при появлении второго пользователя дыра остаётся. Практичный путь — плагин с sanitization (очисткой при загрузке), например Safe SVG.

Опасен ли SVG, если нет форм на сайте?

Риск не нулевой: «грязный» файл сработает у любого, кто откроет страницу с картинкой. Логотип в шапке видят все — проверяйте файл до загрузки, право грузить оставьте администратору.

Какой плагин для SVG выбрать в WordPress?

Для первого раза — Safe SVG: простая установка и очистка через проверенную библиотеку. Альтернатива — SVG Support не ниже 2.5.17 (из-за исправления .svgz) или WP SVG Images для лёгкого сайта. Не смешивайте несколько SVG-плагинов.

Почему WordPress пишет, что тип файла недопустим?

Ядро по умолчанию не принимает SVG в медиабиблиотеку: формат может содержать исполняемый код. После активации плагина с очисткой и настройки ролей тот же файл от дизайнера обычно загружается без этой ошибки.

Что делать, если плагин отклонил мой SVG?

Сначала откройте файл в блокноте и уберите script, onload и лишние ссылки. Попросите дизайнера экспорт «для web». Если плагин снова отказывает — используйте PNG или WebP высокого разрешения: отказ означает, что фильтр сработал в вашу пользу.

Нужен ли формат .svgz обычному бизнесу?

Нет. Для логотипа салона, студии или мастерской достаточно обычного .svg до 50 КБ. Сжатый .svgz чаще приносит проблемы с очисткой и был центром свежих уязвимостей в популярных плагинах.

Как проверить SVG перед загрузкой?

Откройте в блокноте, убедитесь в отсутствии script и onload, проверьте источник. Загрузите через плагин с очисткой — опасный файл не попадёт в медиатеку.

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)
Новый маркетинг с искусственным интеллектом
Добавить комментарий