Как стать автором
Обновить

Комментарии 9

SVG плох тем, что возможность использовать скрипты включена в стандарт, что позволяет XSS, а policy по его ограничению слишком индивидуальны для каждого типа использования. Не говоря уже о невышедшем стандарте SVG 1.2, позволяющем открывать сетевые сокеты.


По той же причине опасности файлов из недоверенных источников весь мир вынужден использовать PDF (хоть с ним тоже есть проблемы, но не такие критические), а не PostScript.


Можно еще почитать про тьюринг-полноту и безопасность здесь: https://habr.com/ru/post/429602/

Как и с библиотекой ImageMagick программа зависала на некоторых файлах, и ничего не происходило. Видимо, что-то не так в самом ImageMagick, а не в его библиотеках.

Надо было открыть Issue в https://github.com/ImageMagick/ImageMagick/issues и дать файл на котором виснет, глядишь, разработчики-бы и решили проблему.

SVG вообще очень проблемный и капризный формат. Его внешняя простота о-очень обманчива. Базовые возможности за годы отладили, но если сунуться в дебри — там баги табунами бегают. Я лично находил парочку в Skia (это графическая библиотека, используемая и Хромиумом, и ФФ). Писал в баг-трекеры. Хромисты мне ответили, что корни уходят слишком глубоко, чтобы это можно было легко исправить. Мозилловцы, кажется, вообще не отреагировали.
Мозилловцы, кажется, вообще не отреагировали.
В Firefox пару лет назад была бага, из-за которой при вставке фрагментов через symbol внутри use не рендерились градиенты, маски и возможно ещё какие-то «продвинутые» штуки. В недрах их багтрекера обнаружился таск аж 10-летней давности, описывающий эту проблему и ответы «поправим как только так сразу». Этот баг пережил несколько поколений движка Gecko, и его, похоже, так и не собирались исправлять, так что возможно он всё ещё актуален.
Я недавно находил в трекере Мозиллы открытый баг возрастом 14 (четырнадцать) лет.

У ImageMagick командной строки есть параметр -debug all

Я использовал Batik для генерации картинок из SVG шаблонов. Работает, даже немного SVG 1.2 понимает

svgexport имеет зависимости на 300+ Мб (Пример)


var svgexport = require('svgexport');

svgexport.render({input: 'file.svg', output: 'file.png'});
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории