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

XML *

Расширяемый язык разметки

Сначала показывать
Порог рейтинга
Уровень сложности

Когда парсеры URL-адресов расходятся (CVE-2023-38633)

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.5K

Обнаружение и разбор уязвимости CVE-2023-38633 в librsvg, заключающейся в ситуации, когда две реализации URL-парсера (Rust и Glib) расходятся в парсинге схемы файла, создавая уязвимость к атаке обхода каталога.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии2

Новости

XML практически всегда применяется не по назначению

Время на прочтение6 мин
Количество просмотров53K

Язык XML был изобретен в 1996 году. Едва он успел появиться, как возможности его применения уже начали понимать неправильно, и для тех целей, к которым его пытались адаптировать, он был не лучшим выбором.

Не будет преувеличением сказать, что подавляющее большинство схем XML, которые мне доводилось видеть, представляли собой нецелесообразное или неправильное использование XML. Более того, такое применение XML свидетельствовало о фундаментальном непонимании того, чем прежде всего является XML.

XML — это язык разметки. Это не формат данных. В большинстве схем XML это разграничение явно не учитывали, путая XML с форматом данных, что в итоге означало ошибку в самом выборе XML, поскольку на самом деле нужен был именно формат данных.
Читать дальше →
Всего голосов 126: ↑98 и ↓28+70
Комментарии95

Хитрый способ создания анимированного jpeg'а

Время на прочтение1 мин
Количество просмотров52K

Сегодня с успехом осуществил свой эксперимент по сжатию гифок. Меня давно уже раздражает отсутствие специального формата для сжатия анимированных файлов. Как так, gif есть, а анимированного jpeg нет, хотя для большинства существующих гифок подходит именно jpeg.

От существующих решений, мое отличается тем, что это один файл svg, который можно вставить на страницу через тэг

Под хабракатом находится сжатая версия вот этой гифки tfirma.name/public/leprosorium.ru/cosss_gif/0004w00e.gif
Оригинал весит 6 мегабайт, сжатая версия — 1,3 мегабайта.

Осторожно! Данное решение имеет существенный недостаток, который выражается в высокой загрузке процессора (около 25%). Происходит это только во время загрузки файла, около 1-2 секунд, потом все возвращается в норму.
Читать дальше →
Всего голосов 99: ↑78 и ↓21+57
Комментарии73

Как сделать бомбу из XML

Время на прочтение5 мин
Количество просмотров43K
В рассылке oss-security было опубликовано обсуждение различных уязвимостей, связанных с разбором XML. Уязвимостям подвержены приложения, которые разрешают библиотекам обрабатывать именованные и внешние сущности в DTD, встроенном в XML-документ, полученный из недоверенного источника. Т.е. по сути — приложения, не изменяющие настроек парсера по умолчанию.

Примеры XML-бомб под катом. Если у вас есть приложения, обрабатывающие XML, вы можете самостоятельно проверить их на предмет наличия уязвимостей. Проверка бомб в этом посте производится на примере утилиты xmllint, входящей в комплект поставки библиотеки libxml2, но можно использовать и другие синтаксические анализаторы.

Читать дальше →
Всего голосов 83: ↑79 и ↓4+75
Комментарии10

Истории

Аппаратный XML-парсер от Intel

Время на прочтение1 мин
Количество просмотров3.2K
Совсем скоро официально выходит процессор Intel Core i7.
Среди нововведений в нем, в частности, реализован набор инструкций SSE4.2. В этой версии они сделали упор на ускорение специфических задач. В частности, добавлено пять инструкций, предназначенных для ускорения разбора XML-файлов. Также с помощью этих инструкций возможно ускорение обработки строк в целом.
Команды SSE 4.2 позволяют параллельно оперировать 16 байтами в двух строках.

У Intel есть некая библиотека XML Software Suite, которая уже использует новые инструкции.
На эту тему у них есть статья с объяснением используемых алгоритмов. Надо сказать, очень познавательно. Я даже уже перевел половину, но не уверен, интересно ли это кому-нибудь. Они заявляют о 25-70% ускорении синтаксического разбора XML.

А в целом наблюдается интересная тенденция перехода от процессоров общего назначения на специализированные. Intel уже придумала для этого новое название — ATA (Application Targeted Accelerators).

В следующей версии будет аппаратная поддержка JavaScript?

Или дальнейшее развитие:
<instruction name=«mov»>
<param=«ax» value=...>
Всего голосов 72: ↑68 и ↓4+64
Комментарии57

Вклад авторов