Как Close показывает чужие HTML-письма и не ловит XSS
Close в 2014 году научился рендерить синхронизированные письма прямо в веб-приложении. Вместо санитайзера HTML они положили тело письма в
Санитайзеры ломают сложную вёрстку писем и не спасают от протечки CSS в основной интерфейс. Песочница iframe решает обе задачи сразу: стили изолированы, скрипты отключены атрибутом
В
🔗 Подробнее
@nuancesprog #Security #JavaScript
Close в 2014 году научился рендерить синхронизированные письма прямо в веб-приложении. Вместо санитайзера HTML они положили тело письма в
iframe через атрибут srcdoc.Санитайзеры ломают сложную вёрстку писем и не спасают от протечки CSS в основной интерфейс. Песочница iframe решает обе задачи сразу: стили изолированы, скрипты отключены атрибутом
sandbox.В
srcdoc команда дополнительно оборачивает письмо своими стилями и тегом <base> с target="_blank". Подвох в высоте: iframe не подстраивается под контент сам, её приходится считать вручную.🔗 Подробнее
@nuancesprog #Security #JavaScript
👍4
earstrip: триангуляция 3,7 млн полигонов за 489 мс
Команда GLOBUS выложила свой триангулятор полигонов earstrip под лицензией ISC. Это один заголовочный файл C++ и сборка WebAssembly с интерфейсом earcut.
Карта для GPU — это треугольники, и резать их приходится миллионами. В C++ earstrip быстрее earcut.hpp на 14%, в браузере — в 1,4–2,1 раза.
Выигрыш дало отсечение ушей вместо ограниченной триангуляции Делоне. Делоне даёт красивые треугольники, но плоской заливке их форма безразлична.
🔗 Подробнее
@nuancesprog #Tools #JavaScript
Команда GLOBUS выложила свой триангулятор полигонов earstrip под лицензией ISC. Это один заголовочный файл C++ и сборка WebAssembly с интерфейсом earcut.
Карта для GPU — это треугольники, и резать их приходится миллионами. В C++ earstrip быстрее earcut.hpp на 14%, в браузере — в 1,4–2,1 раза.
Выигрыш дало отсечение ушей вместо ограниченной триангуляции Делоне. Делоне даёт красивые треугольники, но плоской заливке их форма безразлична.
🔗 Подробнее
@nuancesprog #Tools #JavaScript
👍2