Стародубцев x IT-ХОЗЯЕВА – Telegram
Стародубцев x IT-ХОЗЯЕВА
3.63K subscribers
630 photos
93 videos
5 files
432 links
IT-ХОЗЯЕВА: https://boosty.to/jointime
По всем вопросам: @jointimer
Реклама: @vlad_0045
Download Telegram
Forwarded from Denis Chernov
А мы говорили что ваши реакты ни до чего хорошего не доведут

https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components

TLDR крит уязвимость 10/10:
- если ваш рантайм ПОДДЕРЖИВАЕТ rsc (те условный некст), то злоумышленник может использнять ЛЮБОЙ КОД на стороне СЕРВЕРА
🤣9🎃3🔥1😭1🗿1
Записал гайд, как развернуть бота на питоне 🐶

Зацените картинку
Please open Telegram to view this post
VIEW IN TELEGRAM
123👍10🔥6🎃1
Forwarded from 8BitJS
​​Что пошло не так в React Server Components и чему из этого стоит научиться

Последние пару дней во всех фронтенд-пабликах пролетела новость: в React нашли критическую уязвимость с оценкой CVSS 10.0. Она позволяет получить удаленное выполнение кода на сервере. В списках пострадавших оказались все кто используют и/или поддерживают React Server Components (RSC).

Но мне захотелось разобраться с инженерной точки зрения, что же именно оказалось сломано внутри React и почему это вообще стало возможно. А главное, понять, чему мы можем научиться из этого кейса как разработчики, даже если не используем RSC.

Небольшое отступление.

В рамках PR с закрытием уязвимости было решено сделать рефакторинг. И справедливо было подмечено

With this combined commit, people now have to go through a >1500 line patch to try to understand the security relevant changes.

Что за уязвимость

CVE-2025-55182 - критическая уязвимость в React Server Components, которая позволяет, отправив специально сформированный запрос, добиться удаленного выполнения кода на сервере.

В коде было обнаружены три основные причины уязвимости:

1. Несимметричность в плане защиты между кодом клиентской и серверной реализацией
2. Небезопасная десериализация данных Flight-протокола на сервере
3. Незащищенное разрешение модулей и экспортов

Немного контекста

React Server Components

Основная идея состоит в том, что сервер может сам рендерить дерево компонентов, может делать запросы в БД и API. Клиент же получает поток (stream) данных о дереве, а не готовый HTML. React на стороне клиента постепенно собирает готовый результат из данных от сервера и клиентских компонентов.

Flight-протокол

Внутренний протокол React для передачи данных в RSC между клиентом и сервером. Простыми словами, сервер кодирует состояние дерева, ссылки на компоненты, промисы в поток байтов. Со стороны клиента поток читает декодер ReactFlightClient и восстанавливает исходные данные. Аналогично со стороны сервера есть декодер ReactFlightReplyServer, который обрабатывает обратные данные от пользователя.

Разберемся в коде

Рассмотрим на практике два ключевых участка, которые стали причиной уязвимости.

Prototype pollution в ReactFlightReplyServer

Внутри серверного декодера есть функция reviveModel в связке с getOutlineModel, которые рекурсивно обходят данные и "оживляет" их в обычные JS структуры.

Упростим:

function reviveModel(...) {
...
if (typeof value === 'object' && value !== null) {
...
for (const key in value) {
// hasOwnProperty проверка для защиты от вызова унаследованных ключей
if (hasOwnProperty.call(value, key)) {
...
// добавили проверку на __proto__
if (newValue !== undefined || key === '__proto__') {
value[key] = newValue;
}
}
}
}


requireModule и доверие к экспорту

В RSC есть функция requireModule(metadata) для бандлеров, которая по metadata.id находит модуль и по metadata.name выбирает нужный экспорт.

export function requireModule<T>(metadata: ClientReference<T>): T {
const moduleExports = parcelRequire(metadata[ID]);
return moduleExports[metadata[NAME]];
}


Сервер слишком доверяет экспортируемому модулю, поэтому могут сработать запросы вида:

{
"id": "foo",
"name": "__proto__"
}


Из-за чего можно было использовать имя экспорта, которого нет в модуле, но существующего в цепочке прототипов.

Для закрытия уязвимости для экспорта добавили проверку

if (hasOwnProperty.call(moduleExports, metadata[NAME])) {
return moduleExports[metadata[NAME]];
}


Итого

Как мы смогли увидеть, в уязвимости нет каких-то хитростей React, а используется довольно распространенная проблема доверия к данных при десериализации.

Что важного мы можем вынести для себя:

Никогда не доверяйте структуре данных от пользователя. Для защиты фильтруем все опасные ключи из прототипирования (__proto__, constructor, prototype) и/или добавляем подход allowlist для ключей. Для конструкции for...in используем hasOwnProperty.

#8BitJS #React #CVE #security #RSC
1🔥15532👍1
А заметили ли вы, что каждый год в айтихе появляются вещи, без которых «нельзя обойтись»? Скрам, agile, мега паттерны, архитектуры, убийственные фреймворки, которые исчезают, не успев толком появиться. Сколько же юзелесс-говнища мы через себя пропустили 🪞

Бум нейросетей начинает утихать — это видно по просмотрам даже у тех, кто раньше жестко хайповал. Мы просто получили очередной инструмент, который добавил нам ещё одну абстракцию в работе.

Всё развитие технологий напоминает памп какой-нибудь скам-монеты на TON: паникёры опять остались без нервов, а гигачады спокойно сидят на +вайбе 🚬

Кстати, поздравляю всех, кто в 2022 году зассал вкатываться в айтиху — сейчас сделать это стало ещё сложнее 🚫
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍199😁4💯3🫡2💊2🤯1🙈1
Forwarded from Reatom новости (artalar)
v1000 в проде, альфа закончена 🥳🥳🥳

Библиотека теперь в несколько раз проще и намного богаче на фичи!

Огромное спасибо всему комьюнити за участие в разработке и тестировании, за время альфы количество скачиваний в NPM увеличилось вдвое до 7к в неделю! Ко мне приходят в личку с восторженными фидбеками о простоте и функциональности библиотеки, все получилось как и планировали!

Отдельная благодарность @Xelson за его разработку форм менеджера - титаническая работа! Начать смотреть отсюда (там еще много гайдов в сайдбаре можете найти): https://v1000.reatom.dev/handbook/forms/introduction/

Напомню, у нас так же появилась мощная (лучшая кмк) система роутинга: https://v1000.reatom.dev/handbook/routing/

Помимо core пакета (с формами, роутингом и кучей всего) стабильными версиями опубликованы пакеты для React и собственного JSX рендера.

Уже на подходе пакеты для: solid, lit, preact, zod! Требуется помощь с пакетами для Vue и Svelte (делать по примеру solid и preact).

Про миграцию с v3: https://v1000.reatom.dev/handbook/history/#migration-from-v3

Очень много анонсов и статей, демок будет на этой неделе. НО самое важное - это фидбек от вас! Пробуйте, отписывайтесь сюда или в https://github.com/reatom/reatom/issues/1093

Лайк, шер!
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍6🔥5👏1
Бесплатный ChatGPT GO на год!

Наткнулся в рилсах на гайдец, как получить индийский ChatGPT бесплатно. Ниже будет инструкция как это все проворачивается, но если вам лень это всё проворачивать, как и мне — держите ссылку на маркете аккаунт за 100 рублей.
Грех не подсветить с моей стороны такую возможность.

Инструкция, как это провернуть самому:

1. Подключаем индийский прокси.
2. Создаём новый аккаунт ChatGPT через почту Gmail.
3. После входа в ChatGPT ловим промо предложение. Жмём на него (если не появилось, заходим через товары).
4. Для оплаты нужна заграничная карта.
5. Указываем имя и Индийский адрес.

Пользуемся, а на свободные деньги покупаем клод 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥12👍53
Недовольный мидл
Почти две недели ничего не постил — был в отпуске. А между тем, новости есть...

Я буду преподавать на курсе по Angular в OTUS. 🤩

На самом деле давно задумывался, что стоит вернуться к преподаванию — очень полезная активность, в том числе с точки зрения собственного развития. Когда начинаешь объяснять что-то другим, сам понимаешь многое иначе.

Уже прошёл вступительный курс и провёл демо-занятие, осталось закончить формальные процедуры — и скоро начну учить...
Знаете, чем мне нравится наше сообщество? Вот с таких новостей нереально поднимается настроение, обожаю, когда вижу рост других. Какие же крутые у нас ребята! Поздравляем Артёма! Давайте поддержим его подпиской — ему будет приятно. Напоминаю, не стесняйтесь обращаться к Хозяевам за советом — все всегда готовы помочь и поделиться опытом ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
113🔥1😱1🤣1
Новости Хозяев 💪

Обновили лендинг
— вы просто посмотрите, какая пушка получилась: https://ithozyaeva.ru/

Накрутили туда кучу реально полезного функционала:

Анонсы встреч через бота. Теперь как только создаётся мероприятие на платформе, всем, кто включил рассылку, прилетает уведомление. Не раз, а несколько — чтобы точно не пропустили движ.

Загрузка резюмехи. Не можешь найти работу? Не беда. Залетай, загружай резюме — и можешь быть уверен, я его отправлю HR-ам (их у меня много 🐱).

Список тех, кто готов зарефералить. Прям на платформе есть ребята, которые сейчас готовы помочь рефералкой. Пиши им в личку, не стесняйся.

Развиваемся. По стеку у нас вообще полный фарш: Vue + Go. Такой маленький пет-проектик превращается в полноценную платформу.

P.S. Бот проверяет, состоишь ли ты в основной беседе. Так что если хочешь получить доступ к платформе и ты уже подписан — не забудь вступить в “IT-ХОЗЯЕВА: Основная беседа”.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
216🔥1🫡1
Уже неделю сижу на Antigravity. Это гугловский редактор с жирными бесплатными лимитами на топ-модели. Вообще топчик, переход с VS Code был суперлёгким 💪

Чтобы начать пользоваться, нужно в настройках поменять место вашей дислокации. Я, например, часто на постоянке в Нидерландах, поменял без проблем (выбрал вариант «путешественник») 🐱

Дальше просто логинитесь и наслаждаетесь агентами уже без VPN 🚬

https://antigravity.google/
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥321👍1🤯1
Шедевр рекрутинга
1457👍51😁1
Целых 20 комплектов билетов для всей семьи на новогоднюю ёлку разыгрывает T1 💪

Для участия в розыгрыше нужно сделать не так уж и много: подписаться на канал, оставить коммент и пройти опрос до 20 декабря. Летс гоу!

Реклама. АО "Т1", ИНН: 9714075174, erid: 2W5zFGXEvrk
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿1
🎄 Похоже, подарки под ёлкой появились раньше срока

Потому что мы разыгрываем билеты на Научную ёлку в Политехническом музее, которая пройдёт при поддержке ИТ-холдинга Т1. Это арктическое приключение для юных исследователей.

Дети отправятся в экспедицию по следам ледоколов «Седов» и «Челюскин», побывают на дрейфующей станции папанинцев, а также заглянут на современную платформу «Северный полюс-41». Их ждёт погружение в жизнь полярников, научные опыты и, конечно, подарки.

Как участвовать:
подпишитесь на канал @T1Holding;
✔️ пройдите опрос ниже;
👍 напишите в комментариях: «Участвую».

20 билетов разыграем случайным образом 20 декабря. Полные правила читайте по ссылке. Желаем удачи!
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3🔥22🗿1
От_фундаментальных_моделей_кода_к_агентам_и_приложениям_перевод.pdf
11.2 MB
Вышел большой (300+ страниц) обзор по кодовым моделям - From Code Foundation Models to Agents and Applications (https://huggingface.co/papers/2511.18538).

Это бесплатный учебник про то, как устроены кодовые нейросети (типа Copilot/Claude Code/Cursor), как их обучают и дообучают, и как из них собирают код-агентов и реальные инструменты для разработки.

Инфу нашёл наш любимый Василий @webcorner
13🔥75
Как открыть карту Freedom (КЗ) по заграну и получить пластик в РФ

Что в итоге получаешь
?

— Зарубежный счёт и долларовую карту.

— Пластик, который привезут курьером в РФ.

— Деньги формально лежат в брокере + банке Казахстана.

Сколько это стоит

На выпуск виртуальной карты нужно $125:

$15 — разовая комиссия за выпуск первой карты (следующие без комиссии).

$10 — депозит во Freedom Bank Казахстан (вернут, когда закроешь карту).

$100 — покупка облигаций КЗ, они лежат в портфеле, потом их можно продать и забрать деньги.

Пластик + доставка — ещё $40.
Мне в Петербург привезли карту за 2 дня.

Что подготовить

— Загранпаспорт.

— Российский номер телефона.

— Карта российского банка не под санкциями и на твоё имя (например, Цифра Банк, ОТП).

Шаг 1. Регистрируемся в Freedom Broker

— Скачиваешь приложение Freedom Broker.

— Регистрируешься на тот же номер телефона, который будешь использовать везде.

— Проходишь идентификацию по загранпаспорту.

Шаг 2. Получаем доступ в Freedom Banker

— Скачиваешь приложение Freedom Banker.

— В чате поддержки в Freedom Broker пишешь что-то вроде: «Скачал Freedom Banker, не могу войти, пришлите пригласительную ссылку».

Тебе высылают инвайт, переходишь по ссылке и заходишь в Freedom Banker под тем же номером.

Шаг 3. Выпускаем виртуальную карту

— В Freedom Banker выбираешь пункт «Выпустить карту».

— Приложение покажет, что нужно внести $125 (структуру суммы см. выше).

— Жмёшь «Пополнить торговый счёт» и пополняешь с карты банка без санкций, оформленной на тебя.

После зачисления денег карта выпускается примерно за 5 минут — появятся реквизиты и виртуальная карта.

Шаг 4. Заказываем пластик

— В Freedom Banker заходишь в раздел физической карты / доставки.

— Оплачиваешь выпуск пластика — $40.

— Выбираешь страну, город и удобный адрес из доступных (в РФ города есть не все, смотри список в приложении).

— Ожидаешь курьера. В мой адрес в СПб карту довезли за 2 дня.

Шаг 5. Уведомляем налоговую

После открытия зарубежного счёта по российскому законодательству нужно уведомить ФНС об открытии счёта в иностранном банке.
Сделать это можно через личный кабинет налогоплательщика или через МФЦ — уточни актуальные требования перед подачей.

Сохрани этот пост, чтобы не потерять последовательность шагов. Поделись у себя в канале 😏
Если нужен разбор по лимитам, налогам и рискам таких карт — напиши об этом в комментариях

@ Продуктивный Феня
Please open Telegram to view this post
VIEW IN TELEGRAM
113🔥62🤨2
Ну всё, можно сказать, закручивание гаек на «накрутку опыта» зашевелилось везде.
Компании продолжают вкручивать всё больше фильтров на собесах — до такой степени, что без целенаправленной подготовки пройти становится почти нереально.

И внимание: волнение на собесе теперь — ред флаг, лол 🚬

Интересно, что дальше: будут отсекать за паузы в ответах? Или за «недостаточно уверенный взгляд в камеру»?

Подготовиться к собесам и найти единомышленников можно тут 💪
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11711🔥5