AiPoster

Главные новости веб-разработки: Safari 27.2, TypeScript на Rust, уязвимости PHP и Node.js, обновление DevTools

Конец октября 2026 года принёс разработчикам сразу несколько заметных обновлений. Safari расширил возможности оформления элементов форм, Cloudflare и VoidZero представили быстрый Rust-порт компилятора TypeScript, а команды PHP и Node.js выпустили важные исправления безопасности. Одновременно Chrome DevTools получил новые средства для работы с современным CSS, диагностики веб-приложений и подключения ИИ-агентов.

Safari 27.2 расширил возможности стилизации select

В Safari 27.2 появился псевдоэлемент ::field-content, позволяющий отдельно оформлять выбранное значение элемента <select>. Раньше для сопоставимого контроля разработчикам требовалось использовать <selectedcontent> внутри настраиваемого выпадающего списка. Теперь цвет, шрифт, переполнение и другие параметры отображаемого значения можно менять через CSS, не усложняя HTML-разметку. Это особенно полезно для компонентов, которые должны сохранять семантику нативного элемента формы, но соответствовать дизайну приложения.

Apple также уточнила стандартные стили режима appearance: base-select. Содержимое кнопки стало надёжнее выравниваться по вертикали, выбранный текст наследует text-overflow от самого <select>, а размещение ::picker-icon переведено на flex-модель. Благодаря этому значок списка остаётся видимым даже без <selectedcontent>. Большие панели выбора теперь стараются не выходить за пределы области просмотра за счёт безопасного выравнивания. В реализации Grid Lanes свойство flow-tolerance переименовано в fit-tolerance; старое имя временно сохранено как устаревший псевдоним. Параметр определяет допустимую разницу между дорожками при размещении очередного элемента и может улучшить последовательность клавиатурной навигации. Помимо нововведений, релиз содержит 20 исправлений, связанных с CSS, доступностью, мультимедиа и другими частями WebKit.

Cloudflare и VoidZero переносят TypeScript на Rust

Cloudflare и VoidZero объявили о разработке tsrs — порта компилятора TypeScript на Rust. Проект развивается совместно с представителями команды TypeScript и включён в экосистему компиляторных инструментов Oxc. Авторы подчёркивают, что речь не идёт о создании независимого диалекта или ответвлении языка. TypeScript по-прежнему должен определяться эталонной реализацией и решениями основной команды, а Rust-порт обязан точно воспроизводить её семантику. Такой подход снижает риск несовместимости между проверкой типов в разных инструментах.

Главная цель tsrs — сократить время проверки типов и потребление ресурсов в крупных проектах. В ранних тестах при одинаковом количестве рабочих процессов новый компилятор оказался до восьми раз быстрее TypeScript 7.0 и использовал примерно на 70% меньше памяти. Эти показатели пока следует воспринимать как результаты конкретной конфигурации, а не как гарантию для любого репозитория: скорость зависит от структуры проекта, оборудования и параметров запуска. При этом сотрудничество уже влияет на основной TypeScript — часть оптимизаций была перенесена в TypeScript 7.1 beta, который в отдельных сценариях работает до 2,5 раза быстрее версии 7.0. В перспективе tsrs может использоваться не только в командной строке и CI, но и в браузерных средах разработки, а также для правил Oxlint, которым необходима информация о типах.

Уязвимости php2shell требуют срочного обновления PHP

Уязвимости CVE-2026-109618 и CVE-2026-109619, получившие общее название php2shell, затрагивают веб-серверы с PHP 5.4 и более новыми выпусками. Ошибки находятся в самом рантайме PHP и связаны с небезопасной работой с памятью при аварийном завершении обработки HTTP-запроса. В одном случае очистка может обратиться к не полностью инициализированным внутренним данным, в другом процесс сохраняет ссылки на уже освобождённую память и использует их при последующих запросах. Специально сформированный трафик способен вызвать падение процесса, раскрытие данных или удалённое выполнение кода.

Исправление темы, плагина или прикладного PHP-кода не закрывает эти уязвимости: администраторам необходимо обновить сам интерпретатор до версии с патчами. Если средой управляет хостинг-провайдер, следует отдельно проверить, установлено ли исправление на сервере. Cloudflare заранее развернула набор правил WAF для бесплатных и платных тарифов и продолжает адаптировать защиту к изменяющимся вариантам полезной нагрузки. Компания также задействовала анализ полного HTTP-обмена, при котором учитываются признаки не только запроса, но и ответа origin-сервера. Однако WAF остаётся дополнительным уровнем защиты, а не заменой обновлению. Ограничение размера загрузок и отключение ненужных механизмов приёма файлов могут уменьшить поверхность атаки, но не устраняют дефект памяти. Дополнительно администраторам следует учитывать связанную проблему CVE-2026-115560 в механизме отслеживания прогресса загрузки сессии и следить за рекомендациями проекта PHP.

Node.js 22.23.4 LTS закрывает шесть уязвимостей

Команда Node.js выпустила внеплановое обновление Node.js 22.23.4 LTS, полностью посвящённое безопасности. В него вошли исправления шести зарегистрированных уязвимостей. Высокий уровень опасности присвоен проблемам с обработкой неканонических IP-адресов в TLS, проверкой входных данных DNS на нулевые байты и библиотекой сжатия Brotli. Средний уровень получили дефект защиты данных HTTP Agent и некорректное сохранение кешей случайных значений в снимках процесса. Ещё одна ошибка низкой опасности позволяла обойти ожидаемую проверку модели разрешений при вызове realpathSync.

Обновление важно даже для приложений, которые напрямую не используют все перечисленные API. Уязвимый код может вызываться фреймворками, библиотеками или инфраструктурными инструментами, а особенности TLS и DNS затрагивают базовые сетевые операции среды выполнения. Вместе с патчами безопасности релиз обновляет корневые сертификаты, OpenSSL, c-ares, SQLite, Undici и данные часовых поясов. Командам, использующим ветку Node.js 22 LTS, рекомендуется перейти на 22.23.4, пересобрать контейнеры и серверные образы, а затем убедиться, что в production действительно запущен новый бинарный файл. Простого изменения версии в манифесте недостаточно, если кеш CI, базовый Docker-образ или системный пакет продолжает поставлять прежний выпуск.

Chrome DevTools развивает инструменты для CSS и ИИ-агентов

В ноябрьский набор обновлений Chrome DevTools, опубликованный 20 октября 2026 года для Chrome 155 и 156, вошёл визуальный редактор position-area. Он помогает выбирать область размещения позиционируемого элемента на сетке CSS Anchor Positioning непосредственно в панели Elements. DevTools также улучшил работу с неявными якорями, неактивными правилами @starting-style, наследуемыми стилями и пользовательскими CSS-свойствами, имена которых начинаются с трёх и более дефисов. Эти изменения упрощают отладку интерфейсов, использующих новые возможности платформы без большого объёма ручного редактирования CSS.

Заметная часть релиза адресована ИИ-агентам и автоматизированным средствам разработки. MCP-сервер DevTools получил инструмент get_css_styles для чтения вычисленных и совпавших стилей, включая наследование, псевдоэлементы, @keyframes и специализированные CSS-правила. Большие записи Performance теперь можно разбирать частями, а размер буфера трассировки по умолчанию увеличен до 1,2 ГБ. В Application и Issues добавлена диагностика манифестов Web Install: инструменты показывают ошибки загрузки, синтаксиса, start_url, идентификатора и названия приложения. Network предупреждает, когда preload из ответа 103 Early Hints игнорируется из-за отключённого кеша, и сохраняет локальные переопределения между переходами. Панель Memory научилась находить неиспользуемые переменные контекста, удерживаемые замыканиями, а в Performance улучшена навигация по временной шкале и сохранение состояния деревьев вызовов.


12
3 мин