Node2Shell уже видит атаки на уязвимость Brotli в Node.js
ELLIO сообщает о реальном exploit-трафике для RCE в Brotli, который закрыли в релизах Node.js. Уязвимость живёт в библиотеке Google, поэтому патч нужен и там, где Brotli встроен в другой софт.
Встроенные копии Brotli в приложениях и зависимостях тоже требуют обновления, иначе закрытый в Node баг останется открытым. Проверьте, не тянет ли ваш стек собственную сборку Brotli, и обновите её вместе с Node.
https://ellio.tech/en/blog/node2shell-cve-2026-111497-rce-on-stock-nodejs-builds/
ELLIO сообщает о реальном exploit-трафике для RCE в Brotli, который закрыли в релизах Node.js. Уязвимость живёт в библиотеке Google, поэтому патч нужен и там, где Brotli встроен в другой софт.
Встроенные копии Brotli в приложениях и зависимостях тоже требуют обновления, иначе закрытый в Node баг останется открытым. Проверьте, не тянет ли ваш стек собственную сборку Brotli, и обновите её вместе с Node.
https://ellio.tech/en/blog/node2shell-cve-2026-111497-rce-on-stock-nodejs-builds/
❤1👍1
Как AI-поиск меняет видимость сайтов
AI-поиск больше не показывает только список ссылок, а сразу собирает ответ из нескольких источников. Для сайтов это значит, что важнее не место в выдаче, а упоминание и цитирование в ответе модели.
Модели смотрят на смысл, свежесть, факты и структуру страницы, а не только на ключевые слова. Если контент не подтверждается внешними источниками или перегружен повторениями, его чаще отбрасывают.
https://www.freecodecamp.org/news/ai-search-visibility/
AI-поиск больше не показывает только список ссылок, а сразу собирает ответ из нескольких источников. Для сайтов это значит, что важнее не место в выдаче, а упоминание и цитирование в ответе модели.
Модели смотрят на смысл, свежесть, факты и структуру страницы, а не только на ключевые слова. Если контент не подтверждается внешними источниками или перегружен повторениями, его чаще отбрасывают.
https://www.freecodecamp.org/news/ai-search-visibility/
Сниппет для Quill в Next.js без лишнего SSR
Когда один и тот же WYSIWYG-редактор нужен и для ввода, и для просмотра, важно не тащить его на сервер и не смешивать состояние заметки с состоянием самого Quill. В этом фрагменте редактор грузится только в браузере, а
Учтите: такой подход подходит только для client-side редактора; если вам нужен контент на сервере без гидрации, придется отдельно продумывать viewer и формат хранения HTML.
https://habr.com/ru/articles/1101222/
Когда один и тот же WYSIWYG-редактор нужен и для ввода, и для просмотра, важно не тащить его на сервер и не смешивать состояние заметки с состоянием самого Quill. В этом фрагменте редактор грузится только в браузере, а
highlight.js подключается отдельно для подсветки кода."use client";
import dynamic from "next/dynamic";
import hljs from "highlight.js";
if (typeof window !== "undefined") {
window.hljs = hljs;
}
const ReactQuill = dynamic(
async () => (await import("react-quill-new")).default,
{ ssr: false }
);
Учтите: такой подход подходит только для client-side редактора; если вам нужен контент на сервере без гидрации, придется отдельно продумывать viewer и формат хранения HTML.
https://habr.com/ru/articles/1101222/
WordPress научился считать глубину дочитывания
Плагин AnGo Scroll Analytics для WordPress считает не среднюю прокрутку, а процентили глубины дочитывания. Так видно, где читатели отваливаются, и где до конца доходят только самые заинтересованные.
Трекер весит около 6 килобайт и шлёт данные через
https://habr.com/ru/articles/1100670/
Плагин AnGo Scroll Analytics для WordPress считает не среднюю прокрутку, а процентили глубины дочитывания. Так видно, где читатели отваливаются, и где до конца доходят только самые заинтересованные.
Трекер весит около 6 килобайт и шлёт данные через
sendBeacon, а на сервере защищён от дублей через upsert с GREATEST(). Для точных цифр нужно учитывать отскоки, а также не ломать сборку на кэше, блокировщиках и залогиненных пользователях.https://habr.com/ru/articles/1100670/
❤2
Foldkit строит фронтенд на Effect
Foldkit — TypeScript-фреймворк для фронтенда на Effect, где состояние и побочные эффекты вынесены в явную модель. Маршруты, серверный рендеринг и UI-компоненты тоже живут в одной схеме, поэтому поведение приложения проще отслеживать и тестировать.
Одна неизменяемая Model хранит всё состояние, а изменения проходят через один update. Для проекта нужна готовность работать по архитектуре Effect, иначе переход с React-стека будет слишком тяжёлым.
https://foldkit.dev/
Foldkit — TypeScript-фреймворк для фронтенда на Effect, где состояние и побочные эффекты вынесены в явную модель. Маршруты, серверный рендеринг и UI-компоненты тоже живут в одной схеме, поэтому поведение приложения проще отслеживать и тестировать.
Одна неизменяемая Model хранит всё состояние, а изменения проходят через один update. Для проекта нужна готовность работать по архитектуре Effect, иначе переход с React-стека будет слишком тяжёлым.
https://foldkit.dev/
👍1
Как Sentry убрала 28 тысяч строк мёртвого кода
В Sentry убрали 28 тысяч строк неиспользуемого кода с помощью Knip, а доклад об этом показали на нескольких конференциях. Knip сканирует проект и находит файлы, экспорты и зависимости, которые больше нигде не используются.
Для такого аудита нужен полный проект и корректная конфигурация, иначе часть находок будет шумом. Сначала стоит проверить самые дорогие модули и только потом удалять остальное, чтобы не сломать скрытые связи.
https://tkdodo.eu/blog/dead-code-shouldnt-exist
В Sentry убрали 28 тысяч строк неиспользуемого кода с помощью Knip, а доклад об этом показали на нескольких конференциях. Knip сканирует проект и находит файлы, экспорты и зависимости, которые больше нигде не используются.
Для такого аудита нужен полный проект и корректная конфигурация, иначе часть находок будет шумом. Сначала стоит проверить самые дорогие модули и только потом удалять остальное, чтобы не сломать скрытые связи.
https://tkdodo.eu/blog/dead-code-shouldnt-exist
❤1
Structs Docs: TC39 structs уже можно попробовать
Появилась реализация предложения TC39 Structs для JavaScript, включая structs, shared structs, SharedArray и Atomics.Mutex с Atomics.Condition. Она сочетает рантайм по алгоритмам спецификации и компилятор, который разбирает новый синтаксис. В TypeScript компилятор ещё и подставляет типы, чтобы доступ к полям shared struct был прямым. Пакет
https://structs.arv.tools/
Появилась реализация предложения TC39 Structs для JavaScript, включая structs, shared structs, SharedArray и Atomics.Mutex с Atomics.Condition. Она сочетает рантайм по алгоритмам спецификации и компилятор, который разбирает новый синтаксис. В TypeScript компилятор ещё и подставляет типы, чтобы доступ к полям shared struct был прямым. Пакет
@arv/structs ставит глобальные объекты, а в браузере всё можно запустить в playground рядом с скомпилированным JavaScript.https://structs.arv.tools/
Вышел DuckDB 2.0.0 LTS Cinnamon Teal
DuckDB 2.0.0 LTS Cinnamon Teal вышел как долгосрочный релиз аналитической SQL-базы, которую встраивают прямо в приложение. Он умеет быстро читать большие наборы данных локально и выполнять запросы без отдельного сервера.
Для LTS-ветки важна стабильность API, но часть новых возможностей появляется только в свежих сборках. Если вы держите аналитику рядом с кодом, стоит проверить совместимость расширений и обновить миграции.
https://duckdb.org/2026/10/21/announcing-duckdb-200
DuckDB 2.0.0 LTS Cinnamon Teal вышел как долгосрочный релиз аналитической SQL-базы, которую встраивают прямо в приложение. Он умеет быстро читать большие наборы данных локально и выполнять запросы без отдельного сервера.
Для LTS-ветки важна стабильность API, но часть новых возможностей появляется только в свежих сборках. Если вы держите аналитику рядом с кодом, стоит проверить совместимость расширений и обновить миграции.
https://duckdb.org/2026/10/21/announcing-duckdb-200
Вышел курс по практическому пентесту
На freeCodeCamp.org вышел 2,5-часовой курс по этичному взлому и основам offensive security. Его ведёт преподаватель по кибербезопасности Declan Middleton, а упражнения проходят на отдельной CTF-машине. Внутри разбирают работу в Linux, разведку сети через Nmap, поиск скрытых путей и файлов, а также перехват HTTP-запросов в Burp Suite. Для практики нужны изолированная лаборатория и базовое знание терминала, иначе часть шагов будет трудно повторить.
https://www.freecodecamp.org/news/learn-real-world-penetration-testing-hands-on-ethical-hacking-crash-course/
На freeCodeCamp.org вышел 2,5-часовой курс по этичному взлому и основам offensive security. Его ведёт преподаватель по кибербезопасности Declan Middleton, а упражнения проходят на отдельной CTF-машине. Внутри разбирают работу в Linux, разведку сети через Nmap, поиск скрытых путей и файлов, а также перехват HTTP-запросов в Burp Suite. Для практики нужны изолированная лаборатория и базовое знание терминала, иначе часть шагов будет трудно повторить.
https://www.freecodecamp.org/news/learn-real-world-penetration-testing-hands-on-ethical-hacking-crash-course/
👍3
Где CSS подложил вам ловушки
CSS иногда ведёт себя не так, как ожидается, даже у опытных людей. Здесь собраны несколько ловушек: у
https://habr.com/ru/companies/ruvds/articles/1097580/
CSS иногда ведёт себя не так, как ожидается, даже у опытных людей. Здесь собраны несколько ловушек: у
:has(), :is() и :where() специфичность может вырасти из-за самого списка селекторов, даже если часть условий не найдётся в DOM.position: fixed перестаёт фиксироваться, если у предка есть transform, filter, perspective, backdrop-filter или некоторые значения contain и will-change. При line-height коэффициент пересчитывается при смене размера шрифта, а процент превращается в число один раз, поэтому для адаптивной типографики это важно проверить.https://habr.com/ru/companies/ruvds/articles/1097580/
❤1👍1
Вышел бесплатный курс по безопасности MCP
Model Context Protocol связывает LLM с внешними инструментами, базами данных и API, а новый бесплатный курс учит защищать такие интеграции. В нём разбирают, как агент можно заставить выполнить вредное действие через уязвимые данные и связи. Если у агента есть доступ к приватным данным, он читает и внешние источники, а ещё умеет отправлять данные наружу, возникает опасная комбинация. Вместо хрупких фильтров подсказок курс советует строить архитектурные границы и сразу проверять, не открыли ли вы агенту лишние права.
https://www.freecodecamp.org/news/secure-your-ai-agents-free-model-context-protocol-mcp-security-course/
Model Context Protocol связывает LLM с внешними инструментами, базами данных и API, а новый бесплатный курс учит защищать такие интеграции. В нём разбирают, как агент можно заставить выполнить вредное действие через уязвимые данные и связи. Если у агента есть доступ к приватным данным, он читает и внешние источники, а ещё умеет отправлять данные наружу, возникает опасная комбинация. Вместо хрупких фильтров подсказок курс советует строить архитектурные границы и сразу проверять, не открыли ли вы агенту лишние права.
https://www.freecodecamp.org/news/secure-your-ai-agents-free-model-context-protocol-mcp-security-course/