В отличие от изображения, которое выглядит как PNG или JPEG, SVG-файл может сохранять в XML фигуры, текст, комментарии, имена слоев, сведения инструментов, ID, описания и другое.
Даже если внешне проблем нет, при открытии файла как текста внутри могут остаться имя автора, название компании, название проекта, исходный текст и сведения об инструменте редактирования.
Если вы публикуете изображение или схему анонимно, SVG нужно проверять не как «изображение», а как «публикуемый текстовый файл».
В этой статье разобрано, какая информация остается в SVG и что проверять перед публикацией.
SVG — изображение с читаемым содержимым
SVG — сокращение от Scalable Vector Graphics, формата, который описывает векторное изображение через XML.
Круги, линии, текст, контуры, цвета и координаты записываются как теги и атрибуты. Поэтому SVG можно отображать в браузере как изображение и одновременно читать в текстовом редакторе.
Элемент внутри SVG
Информация, которая может остаться
Осторожность для анонимности
text-элемент
Текст внутри изображения
Иногда остается и невидимый текст
metadata-элемент
Автор, инструмент, описание
Видна среда создания
Комментарии
Рабочие заметки, имена
Не видны внешне, поэтому легко пропустить
id и class
Имена слоев и компонентов
Остаются названия проектов или внутренние слова
Имя файла
Имя, название дела, дата
Видно при передаче как есть
Опасность SVG в том, что внешний вид и внутреннее содержимое не совпадают.
Текст, который как будто удален с экрана, может остаться внутри XML.
Остается информация дизайнерских инструментов
SVG часто экспортируют из дизайнерских инструментов и инструментов построения схем.
При этом могут остаться название инструмента, настройки экспорта, имена слоев, имена объектов и название шаблона.
Остающаяся информация
Пример
Осторожность
Инструмент создания
Illustrator, Figma, Inkscape и другие
Угадывается среда создания
Имя слоя
client-logo, school-map
Видны название дела или организации
ID объекта
user-name, draft-title
Видно исходное назначение
Комментарии
TODO, рабочие заметки
Остается внутренняя информация
Название шаблона
Шаблон с названием компании
Ведет к принадлежности
Одно название инструмента иногда не является большой проблемой.
Но название компании, школы, дела, внутреннего проекта или имя пользователя напрямую связано с анонимностью.
Осторожно с невидимым текстом
В SVG может оставаться невидимый или слишком мелкий текст.
Например, если имя из исходной схемы только вынесли за пределы области просмотра, сделали прозрачным или скрыли слой, текст иногда остается внутри XML.
Состояние
Внешний вид
Содержимое
Прозрачный текст
Не виден
Остается как text-элемент
Текст вне области
Не отображается
Остается с координатами
Скрытый слой
Не виден
Иногда остается информация слоя
Мелкий текст
Легко не заметить
Читается при увеличении или XML-проверке
Даже если как изображение файл выглядит нормально, проверяйте его содержимое как текст.
Для SVG, которому нужна анонимность, важно не публиковать только после внешней проверки.
Что проверять
Перед публикацией SVG проверяют следующую информацию.
Пункт проверки
Почему смотреть
Имя автора
Может остаться личное имя или имя аккаунта
Название компании или школы
Видна принадлежность или дело
Имена слоев и ID
Иногда остается название внутреннего проекта
Комментарии
Остаются рабочие заметки или информация до удаления
Невидимый текст
Остается текст, которого не видно внешне
Имя файла
Видно при передаче как есть
Способ проверки простой.
Откройте SVG-файл в текстовом редакторе и ищите имя, почту, название компании, школы, дела, топоним, комментарии и ненужные строки.
Как обращаться с инструментами оптимизации SVG
Для SVG есть инструменты оптимизации, которые удаляют ненужные метаданные и атрибуты.
SVGO — один из известных инструментов оптимизации SVG-файлов. В официальном репозитории можно проверить, что он удаляет и какие плагины доступны.
Если используете SVGO, исходите из обработки официальным локальным инструментом. Если загрузить высокорисковый SVG в Web-сервис оптимизации, строки внутри XML и имя файла могут быть переданы наружу.
Но пропуск через инструмент не гарантирует безопасность.
Что останется, зависит от настроек. Инструмент в основном удаляет ненужные атрибуты и метаданные; он не оценивает смысл текста, фона и видимой информации в изображении.
Даже при использовании SVGO итоговое содержимое проверяет человек.
Безопасно ли конвертировать в PNG
При конвертации SVG в PNG или другое растровое изображение текстовая XML-информация обычно перестает выходить наружу.
Но это не делает файл полностью безопасным.
Остаются текст, фон, логотипы, карты и сведения экрана, видимые как изображение. Кроме того, у изображения после конвертации могут появиться свои метаданные.
Что уменьшается при конвертации
Что остается
Осторожность
XML-комментарии
Текст, видимый на изображении
Нужна визуальная проверка
Имена слоев
Логотипы и фон
Видны принадлежность или место
ID объектов
Метаданные изображения после конвертации
Проверять и выходной файл
Конвертация — один из полезных способов.
Но после нее все равно проверяют внешний вид и информацию файла.
Практический порядок перед передачей
Перед публикацией SVG закрепляют порядок проверки.
Сначала копируют исходный файл и делают отдельный файл для публикации. Затем открывают содержимое в текстовом редакторе и ищут имена и названия организаций. После этого отображают в браузере и проверяют оставшийся видимый текст и логотипы. В конце смотрят, нет ли персональной информации в имени публикационного файла.
Порядок
Действие
Цель
1
Скопировать исходный файл
Разделить материал до редактирования и публикационную версию
2
Открыть как текст
Проверить информацию внутри XML
3
Искать имена и названия организаций
Найти прямые признаки
4
Показать в браузере
Проверить видимую утечку
5
Переименовать файл
Убрать внешнюю информацию
Если каждый раз использовать один порядок, пропусков будет меньше.
Чем сильнее спешка, тем важнее не решать только по внешнему виду.
Для высокорисковых SVG пересмотреть формат публикации
Если речь о сообщении о нарушениях, журналистских материалах, схемах, связанных с работой или школой, или схемах, где нужно защищать связанных людей, подумайте, нужно ли публиковать именно SVG.
SVG удобен, но содержит редактируемую структуру, поэтому в нем легче оставлять информацию. Если читателю не нужно увеличивать или редактировать схему, можно рассмотреть PNG с последующей проверкой как изображения.
Но и PNG не убирает фон и видимый текст.
Смена формата нужна не для уменьшения проверки, а для выбора другого типа проверяемой информации.
Итоги
SVG отображается как изображение, но внутри это текст.
В нем могут оставаться имя автора, название компании, школы, имена слоев, ID, комментарии, невидимый текст и рабочие заметки.
Если SVG публикуется анонимно, проверяйте не только вид изображения, но и содержимое в текстовом редакторе.
Инструменты оптимизации вроде SVGO полезны, но не отдавайте проверку только инструменту.
В конце важно проверять вместе текст, вид изображения, содержимое XML и имя файла.
Связанные инструменты
Metadata inspection
ExifTool
Внешний ресурс, связанный с этой статьей. Открывайте его только если он подходит вашей ситуации и модели угроз.
Почему указано здесь: Он может помочь с темой статьи, но находится вне Anonymity Sense, поэтому перед использованием его нужно проверить.