
Сделайте безопасной раздачу недоверенных SVG-файлов
Цель этого инструмента — сделать произвольные SVG-файлы настолько безобидными и безопасными для отдачи в качестве изображений, как и другие распространённые веб-форматы файлов. SVG-файлы — это не просто изображения, это документы с полным доступом ко всем возможностям HTML и JavaScript. Этот инструмент фильтрует SVG-файлы, удаляя использование любых потенциально рискованных возможностей.
Удаляет скрипты. Предотвращает использование SVG-файлов для атак с межсайтовым скриптингом. Хотя браузеры не разрешают скрипты в ``, они разрешают выполнение скриптов, когда SVG-файлы открываются напрямую как документ верхнего уровня.
Удаляет гиперссылки на документы в других доменах. Делает SVG-файлы менее привлекательными для SEO-спама и фишинга.
Удаляет ссылки на кросс-доменные ресурсы. Не даёт третьим сторонам отслеживать, кто просматривает изображение.
Этот инструмент удаляет любые элементы и атрибуты, которых нет в его списке разрешённых, и фильтрует все URL так, чтобы они были только same-origin (пути без имени хоста). Это может сломать некоторые SVG-изображения. Пожалуйста, сообщайте об ошибке, если вы обнаружите изображение, которое фильтруется слишком жёстко!
Этот инструмент может уменьшить размер SVG-файлов, удаляя из них ненужный мусор, но он не предназначен для оптимизации SVG. svg-hush можно безопасно сочетать с инструментами оптимизации SVG.
Независимо от этой фильтрации, лучше всего отдавать SVG-изображения с ограничительным Content-Security-Policy. Этот инструмент обеспечивает эшелонированную защиту для случаев, когда заголовок CSP может не поддерживаться, быть потерян или обойдён (например, из-за неправильной конфигурации сервера/CMS или ServiceWorker, который не пересылает заголовки).
DOCTYPE, ссылающиеся на внешние DTD-файлы, не допускаются. Внутреннее подмножество поддерживается.