CVE-2025-55182
Если коротко, обновите Next.js и React.
Если чуть длиннее, то реализация React Server Components содержит критическую уязвимость, которая позволяет выполнять на сервере то, что вы не просили выполнять. Даже если вы не используете RSC.
Затронуло версии:
- Next.js 15.x
- Next.js 16.x
- Next.js 14.3.0-canary.77+
- React 19.0, 19.1.0, 19.1.1 и 19.2.0
Ну и на самом деле зацепило
Вот так популярный фреймворк навёл шороху во фронтенде не самым лучшим образом за очень короткое время.
https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
Если коротко, обновите Next.js и React.
Если чуть длиннее, то реализация React Server Components содержит критическую уязвимость, которая позволяет выполнять на сервере то, что вы не просили выполнять. Даже если вы не используете RSC.
Затронуло версии:
- Next.js 15.x
- Next.js 16.x
- Next.js 14.3.0-canary.77+
- React 19.0, 19.1.0, 19.1.1 и 19.2.0
Ну и на самом деле зацепило
react-server-dom-parcel, react-server-dom-turbopack и react-server-dom-webpack, так что обновлять надо всё, что от них зависит.Вот так популярный фреймворк навёл шороху во фронтенде не самым лучшим образом за очень короткое время.
https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
react.dev
Critical Security Vulnerability in React Server Components – React
The library for web and native user interfaces
🥴47💯11🐳5🤣5😁3🔥2❤1
Привязываем крестик к диалогу
Задача: нарисовать крестик в диалоге (попапе), который визуально выходит за границы диалога. Много видел разных реализаций в разные эпохи, дизайнеры рисуют такие макеты на моей памяти с тех времён, как появились модалки на
Важно, в этой задаче нужно учитывать семантику. Если вы не хотите разломать клавиатурную навигацию и доступность, крестик-кнопка должен быть внутри элемента-модалки.
Дарин Сеннефф предлагает современный вариант с Invoker Command и Anchor Positioning, где кода нужно сильно меньше, а результат вполне себе неплохой.
https://www.darins.page/articles/close-button-hang-dialog
Задача: нарисовать крестик в диалоге (попапе), который визуально выходит за границы диалога. Много видел разных реализаций в разные эпохи, дизайнеры рисуют такие макеты на моей памяти с тех времён, как появились модалки на
position: fixed.Важно, в этой задаче нужно учитывать семантику. Если вы не хотите разломать клавиатурную навигацию и доступность, крестик-кнопка должен быть внутри элемента-модалки.
Дарин Сеннефф предлагает современный вариант с Invoker Command и Anchor Positioning, где кода нужно сильно меньше, а результат вполне себе неплохой.
https://www.darins.page/articles/close-button-hang-dialog
Darin Senneff
Getting a close button to hang off of a dialog - Darin Senneff
Have you ever had to implement a modal dialog with a close button designed to hang off of the corner?
While not a huge lift for most developers, there’s a few…
While not a huge lift for most developers, there’s a few…
1❤32🥴4👍2❤🔥1
Никаких токенов! Обезопашиваем npm publish
С учётом последних «весёлых» событий в мире npm любые хорошие советы, как работать с пакетами, не будут зря.
Зак Лезерман делится набором как раз таких советов. Мне понравился про ввод паролей только через менеджер паролей — ведь и правда автоматика менее подвержена фишингу, чем человеческое невнимание.
https://www.zachleat.com/web/npm-security/
С учётом последних «весёлых» событий в мире npm любые хорошие советы, как работать с пакетами, не будут зря.
Зак Лезерман делится набором как раз таких советов. Мне понравился про ввод паролей только через менеджер паролей — ведь и правда автоматика менее подвержена фишингу, чем человеческое невнимание.
https://www.zachleat.com/web/npm-security/
Zach Leatherman
No more tokens! Locking down npm Publish Workflows—zachleat.com
A post by Zach Leatherman (zachleat)
👍10❤3🤨2🎉1🌚1
Ещё пара уязвимостей в React Server Components
Спустя неделю после просьбы обновить уязвимые библиотеки команда React просит сделать это снова. На этот раз исследователи нашли две уязвимости, которые могут быть крайне неприятны.
CVE-2025-55184 и CVE-2025-67779 — позволяет дёрнуть серверную функцию так, чтобы вызвать бесконечный цикл, что может грохнуть или избыточно нагрузить ваш серверный CPU.
CVE-2025-55183 — позволяет достать исходный код серверной функции. Опасно, только если вы прямо в коде храните пароли или супер-секретную бизнес-логику пишете прям в серверных функциях.
В общем, снова нужно обновить библиотеки из списка в статье. И фреймворки, у которых они в зависимостях (особенно Next.js).
Интересно, как много команд завело встречку в календаре обсудить «Переезд на <не-реакт, подставить нужное>».
https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components
Спустя неделю после просьбы обновить уязвимые библиотеки команда React просит сделать это снова. На этот раз исследователи нашли две уязвимости, которые могут быть крайне неприятны.
CVE-2025-55184 и CVE-2025-67779 — позволяет дёрнуть серверную функцию так, чтобы вызвать бесконечный цикл, что может грохнуть или избыточно нагрузить ваш серверный CPU.
CVE-2025-55183 — позволяет достать исходный код серверной функции. Опасно, только если вы прямо в коде храните пароли или супер-секретную бизнес-логику пишете прям в серверных функциях.
В общем, снова нужно обновить библиотеки из списка в статье. И фреймворки, у которых они в зависимостях (особенно Next.js).
Интересно, как много команд завело встречку в календаре обсудить «Переезд на <не-реакт, подставить нужное>».
https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components
react.dev
Denial of Service and Source Code Exposure in React Server Components – React
The library for web and native user interfaces
🌚40😁30😢10❤3😐3😱2🐳2
Голосование за фичи веб-платформы
WebDX Community Group предлагает «новый» способ влиять на вес фичей в бэклогах браузеров. Теперь в виджетах со статусом Baseline в разных источниках рядом с названием фичи появился счётчик лайков. Когда вы на него кликните, то сможете перейти в ишью на гитхабе, где тоже можете лайкнуть, если вам фича откликается и вы её хотите начать применять.
Почему «новый» в кавычках? Потому что похожий механизм был у Interop 2025 и ранее. Отличие в том, что эти лайки собирают не только перед марш-броском планирования нового года в Interop, а постоянно.
И да, как и в Interop, ваши лайки — это не гарантия того, что браузеры самые залайканные фичи возьмут в работу немедленно. Так вы даёте сигнал, что сообщество разработчиков нуждается в фиче. А заодно комментом можете добавить больше контекста с примерами, почему фича вам действительно нужна — это поможет добавить полезных тестов.
Полезное изменение. Любой сигнал от комьюнити лучше, чем его отсутствие.
https://web.dev/blog/upvote-features?hl=en
WebDX Community Group предлагает «новый» способ влиять на вес фичей в бэклогах браузеров. Теперь в виджетах со статусом Baseline в разных источниках рядом с названием фичи появился счётчик лайков. Когда вы на него кликните, то сможете перейти в ишью на гитхабе, где тоже можете лайкнуть, если вам фича откликается и вы её хотите начать применять.
Почему «новый» в кавычках? Потому что похожий механизм был у Interop 2025 и ранее. Отличие в том, что эти лайки собирают не только перед марш-броском планирования нового года в Interop, а постоянно.
И да, как и в Interop, ваши лайки — это не гарантия того, что браузеры самые залайканные фичи возьмут в работу немедленно. Так вы даёте сигнал, что сообщество разработчиков нуждается в фиче. А заодно комментом можете добавить больше контекста с примерами, почему фича вам действительно нужна — это поможет добавить полезных тестов.
Полезное изменение. Любой сигнал от комьюнити лучше, чем его отсутствие.
https://web.dev/blog/upvote-features?hl=en
web.dev
Vote for the web features you want to see | Blog | web.dev
Have you ever wished you could just poke the browser vendors and say, "Hey, I need this!"? Well, now you can.
🔥11❤2👏1
CSS 2025: Baseline Widely Available — тирлист
Ребята из HTML Academy позвали вечером в формате лайва обсудить фичи CSS, которые в этом году перешли в статус Baseline Widely Available. Знаю, что Лёша Симоненко подготовил тирлист, будем распределять их по мощности. Подозреваю, не обойдётся без аниме :)
Забегайте в 20:00 пообщаться через комментарии.
https://www.youtube.com/live/ASLry05R8T8
Ребята из HTML Academy позвали вечером в формате лайва обсудить фичи CSS, которые в этом году перешли в статус Baseline Widely Available. Знаю, что Лёша Симоненко подготовил тирлист, будем распределять их по мощности. Подозреваю, не обойдётся без аниме :)
Забегайте в 20:00 пообщаться через комментарии.
https://www.youtube.com/live/ASLry05R8T8
YouTube
CSS 2025: Baseline Widely Available — собираем тирлист
CSS в 2025 стал заметно мощнее: появилось много возможностей, которые уже не «когда-нибудь потом», а Baseline Widely Available — то есть их можно уверенно использовать в проектах без оглядки на поддержку. В эфире четыре эксперта разберут всё, что стало доступным…
🔥24🎉4❤3
Web Performance Calendar 2025
Ещё один адвент-календарь для фронтендеров. На этот раз про перфоманс.
Уже есть 22 статьи, ещё парочка доедет в течение ближайших дней. Core Web Vitals, инсайты после исследований перфоманса, оптимизация трафика, неблокирующий рендеринг картинок, соточка в Lighthouse, полезные инструменты и прочие темы для фанатов быстрого веба.
https://calendar.perfplanet.com/2025/
Ещё один адвент-календарь для фронтендеров. На этот раз про перфоманс.
Уже есть 22 статьи, ещё парочка доедет в течение ближайших дней. Core Web Vitals, инсайты после исследований перфоманса, оптимизация трафика, неблокирующий рендеринг картинок, соточка в Lighthouse, полезные инструменты и прочие темы для фанатов быстрого веба.
https://calendar.perfplanet.com/2025/
Web Performance Calendar
2025 Archives
The speed geek's favorite time of year
❤26👍5🔥5😁1
RSC Explorer
После всяких CVE-2025-55182 и прочих «маркетинговых кампаний» вокруг React Server Components всё чаще видел в твиттерах запрос: «Вот было бы круто иметь удобный визуализатор тех самых RSC-запросов, чтобы дебагать».
И вот Дэн Абрамов как раз делится таким инструментом под названием RSC Explorer.
По сути это такая песочница, куда можно загнать ваш серверный и клиентский код, чтобы посмотреть, как между ними гоняются данные в процессе рендеринга RSC-приложения. Сложную файловую структуру не ждите, есть буквально два окошка, куда нужно вставить код. Но для демок этого вполне себе хватит. Те же CVE погонять можно, чтобы лучше их понять.
В репозитории написано, что проект полностью навайбкожен.
https://overreacted.io/introducing-rsc-explorer/
После всяких CVE-2025-55182 и прочих «маркетинговых кампаний» вокруг React Server Components всё чаще видел в твиттерах запрос: «Вот было бы круто иметь удобный визуализатор тех самых RSC-запросов, чтобы дебагать».
И вот Дэн Абрамов как раз делится таким инструментом под названием RSC Explorer.
По сути это такая песочница, куда можно загнать ваш серверный и клиентский код, чтобы посмотреть, как между ними гоняются данные в процессе рендеринга RSC-приложения. Сложную файловую структуру не ждите, есть буквально два окошка, куда нужно вставить код. Но для демок этого вполне себе хватит. Те же CVE погонять можно, чтобы лучше их понять.
В репозитории написано, что проект полностью навайбкожен.
https://overreacted.io/introducing-rsc-explorer/
overreacted.io
Introducing RSC Explorer — overreacted
My new hobby project.
🔥19🤔10😁5❤4👍2
Tbilisi JS XMas Stream 2025
Завтра буду вечером смотреть классные доклады и даже что-то говорить в эфир. Обожаю тбилисское сообщество, искренне рекомендую, если ещё вечер воскресенья ничем не заполнен в календаре.
ПыСы. Будьте внимательнее с таймзоной ;)
https://t.iss.one/tbilisi_js/567
Завтра буду вечером смотреть классные доклады и даже что-то говорить в эфир. Обожаю тбилисское сообщество, искренне рекомендую, если ещё вечер воскресенья ничем не заполнен в календаре.
ПыСы. Будьте внимательнее с таймзоной ;)
https://t.iss.one/tbilisi_js/567
Telegram
Tbilisi JS 🤟
Tbilisi JS XMas Stream 2025 — December 28🎄
Ловите наш сюрприз — мы вместе с Даней Савицким уже в это воскресенье приглашаем вас обсудить итоги года и послушать ещё классных докладов напоследок!
🎙Иван Акулов, Google Developer Expert, Performance Engineer…
Ловите наш сюрприз — мы вместе с Даней Савицким уже в это воскресенье приглашаем вас обсудить итоги года и послушать ещё классных докладов напоследок!
🎙Иван Акулов, Google Developer Expert, Performance Engineer…
❤🔥12❤10🔥4🥰1
Дизайнтюа и Фронтендюэль. Про вариативные шрифты
В подкасте «Веб-стандарты» в 503 выпуске мы обсуждали вариативные шрифты, их состояние в 2025 году, возможности для внедрения в вебе. Я в том числе спорил с мнением автора статьи, где он говорит, что вариативные шрифты можно внедрять чуть ли не везде в виде универсального инструмента от всех проблем.
Мне написал наш слушатель и поделился ссылкой на свой блог, где в 21 посте тема разбирается куда более качественно, чем мы в подкасте наговорили, на мой субъективный взгляд. Неистово рекомендую к прочтению.
https://t.iss.one/designtua_frontenduel/73
В подкасте «Веб-стандарты» в 503 выпуске мы обсуждали вариативные шрифты, их состояние в 2025 году, возможности для внедрения в вебе. Я в том числе спорил с мнением автора статьи, где он говорит, что вариативные шрифты можно внедрять чуть ли не везде в виде универсального инструмента от всех проблем.
Мне написал наш слушатель и поделился ссылкой на свой блог, где в 21 посте тема разбирается куда более качественно, чем мы в подкасте наговорили, на мой субъективный взгляд. Неистово рекомендую к прочтению.
https://t.iss.one/designtua_frontenduel/73
Telegram
Дизайнтюа и Фронтендюэль
1/21
Сегодняшний повод — статья Стюарта Кроуфорда о вариативных шрифтах:
Variable Fonts Explained: Reduce Bloat and Fix Layout Shifts
https://inkbotdesign.com/variable-fonts/
И её обсуждение в подкасте Веб-стандарты:
https://web-standards.ru/podcast/503/#01:07:55…
Сегодняшний повод — статья Стюарта Кроуфорда о вариативных шрифтах:
Variable Fonts Explained: Reduce Bloat and Fix Layout Shifts
https://inkbotdesign.com/variable-fonts/
И её обсуждение в подкасте Веб-стандарты:
https://web-standards.ru/podcast/503/#01:07:55…
❤19🔥5🤯3
!important и кастомные свойства в CSS
Сегодня я узнал, что когда вы пишете
Крис Койер в статье поясняет, что на самом деле
https://frontendmasters.com/blog/important-and-css-custom-properties/
Сегодня я узнал, что когда вы пишете
--color: orange !important; в CSS, то это не указание строки, которая потом распарсится как цвет, причём очень важный.Крис Койер в статье поясняет, что на самом деле
!important — это указание каскаду отработать на свойстве, пусть и кастомном. Парсер отделяет импортант от строки. Причём логично ведь, у нас же не CSS Custom String, а CSS Custom Property, значит и каскад со специфичностью они ломать не должны. Но что-то я сначала не понял, а потом как понял!https://frontendmasters.com/blog/important-and-css-custom-properties/
Frontend Masters
!important and CSS Custom Properties
This just bit me the other day so I’m going to write it down. Again, as it’s surprised me before. I just think I can maybe explain it even more clearly this time.
👍23🤔3❤2🔥2
Проектирование сложных UI
Виталий Фридман поделился материалами курса про проектирование по-настоящему сложных UI. Когда вам нужно собрать полноценное приложение с множеством контролов, панелек, сценариев, а не просто сайт.
Внутри запись мастер-класса, слайды и огромное количество материалов по теме. Если не знаете, чем занять себя до конца новогодних, можно знатно закопаться — и время пролетит незаметно.
https://smashed.by/maven26
Виталий Фридман поделился материалами курса про проектирование по-настоящему сложных UI. Когда вам нужно собрать полноценное приложение с множеством контролов, панелек, сценариев, а не просто сайт.
Внутри запись мастер-класса, слайды и огромное количество материалов по теме. Если не знаете, чем занять себя до конца новогодних, можно знатно закопаться — и время пролетит незаметно.
https://smashed.by/maven26
Google Docs
⛳ Designing For Complex UIs (Maven, Jan 2026)
🎯 Designing For Complex UIs, with Vitaly Friedman (Maven, Jan 2026) 📄 This doc: https://smashed.by/maven26 🍎 Next: Design For AI 2026 (20% off: MEOW) ⏳ Next: Measure UX & Design Impact (20% off: COMPLEX) 🌻Next: My friendly video course bundles on UX 📄 Video…
2🔥30🤔10❤6❤🔥1👍1
Нет robots.txt — нет сайта в выдаче Google
Внезапное. Алан Смит делится интересным кейсом. В какой-то момент органический трафик из Google на сайт ушёл в 0. И причина, скорее всего, в том, что у сайта нет
Дальнейший ресёрч показал, что вообще-то в поддержке есть целое видео про этот нюанс.
Честно говоря, я с таким никогда не сталкивался, потому что у меня для каждого личного проекта
https://www.alanwsmith.com/en/37/wa/jz/s1/
Внезапное. Алан Смит делится интересным кейсом. В какой-то момент органический трафик из Google на сайт ушёл в 0. И причина, скорее всего, в том, что у сайта нет
robots.txt — файла в корне сайта, который должен давать инструкции роботам, куда можно ходить, а куда нельзя ходить.Дальнейший ресёрч показал, что вообще-то в поддержке есть целое видео про этот нюанс.
Честно говоря, я с таким никогда не сталкивался, потому что у меня для каждого личного проекта
robots.txt на автомате копируется из предыдущего. Но удивительно, что если гуглобот не получил явное разрешение погулять по сайту, то он не наглеет и действительно не идёт гулять. Логично. Но удивительно.https://www.alanwsmith.com/en/37/wa/jz/s1/
Alanwsmith
Fix Your robots.txt or Your Site Disappears from Google
a post from alan w. smith
👍35🤯15❤🔥3❤2🤣2