Блог*
Открыть в Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
Больше1 923
Подписчики
-124 часа
Нет данных7 дней
-730 день
Архив постов
1 923
📊 Политический анализ канала
Блог* (@dereference_pointer_there)
📍 Диагноз: КЛАССИЧЕСКИЙ ЛИБЕРАЛИЗМ
💭 Обоснование:
Автор пишет о технических деталях, открытом доступе к научным данным и критически относится к государственному вмешательству (пример: «МВД предложило ввести уголовную ответственность за административную ответственность»). Такие позиции типичны для либертарианского правого направления, поддерживающего свободный рынок и минимальное государственное регулирование. При этом экономические взгляды нейтральны‑светло‑правые (упоминаний о перераспределении или соц‑политике нет). Поэтому выбранная идеология – КЛАССИЧЕСКИЙ ЛИБЕРАЛИЗМ, а координаты отражают лёгкое смещение вправо и умеренную либертарианскую позицию.
📅 28.08.2025 14:44
AdminTools. Подписаться
1 923
@tech_b0lt_Genona подкинул бота. Смешно, конечно, что проанализировал текст из поста Пездузы
1 923
#video
Bad apple на яблоках
The apples spin 90 degrees when their source pixel transitions between black and white.
1 923
#prog #rust #itsec #article
hyper HTTP/2 (Didn't) MadeYouReset
Протокол HTTP/2 позволяет открыть несколько стримов поверх одного соединения, каждый из которых может быть отменён (reset) любой стороной в любой момент. В некоторых случаях это нужно сделать обязательно — например, когда одна из сторон присылает невалидные сообщения. Это сделало возможным уязвимость, названную MadeYouReset. Суть её в том, что злоумышленник инициирует соединение с максимально возможным числом стримов, а затем постоянно их сбрасывает путём отправки невалидных фреймов. Обработка всех этих запросов и следование протоколу отнимает ресурсы сервера, что делает возможным Denial of service.
Эта уязвимость очень схожа с уязвимостью Rapid Reset, но, как описано в статье от Cloudflare, она несколько более хитрая. Rapid Reset полагается на явную отмену стримов клиентом через посылку фрейма RST_STREAM. MadeYouReset же работает через посылку невалидных фреймов, заставляя сервер парсить запросы и отменять стримы уже с его стороны.
Многие реализации HTTP/2 на практике делали работу по обработке запроса даже после закрытия стрима. Простые меры предосторожности против Rapid Reset, отслеживающие только фреймы RST_STREAM от клиента, бесполезны против MadeYouReset.
h2 (Rust-библиотека для работы с протоколом HTTP/2) оказалась не подвержена этой уязвимости. Почему? На это есть несколько причин.
Во-первых, в h2 несколько лет назад добавили меру предосторожности против абьюза клиентами отмен стримов. Именно, h2 отслеживает, сколько раз фрейм от клиента привёл к отмене стрима со стороны клиента, и когда это число достигает настраиваемого порога, закрывает соединение целиком. Это уже хорошая защита, которая на практике успешно защищала от Rapid Reset, но она была не безупречна — для одного типа фреймов (WINDOW_UPDATE) на одном из путей исполнения это число не обновлялось (разумеется, это поправили).
Во-вторых, h2 — библиотека, а не фреймворк, и всегда передаёт вызывающему коду информацию об отмене стрима. Разумеется, от этого мало толку, если вызывающий код на это никак не реагирует.
И это подводит нас к третьей причине: контекст использования. На практике h2 использовалась совместно с hyper, Rust-библиотеке для HTTP, абстрагированной от конкретной версии протокола. В коде hyper для стримов ожидается исполнение двух футур: поставляющей новые фреймы из стрима и обрабатывающей запросы из этого стрима. При получении отмены стрима hyper отменяет футуру, обрабатывающую запрос.
Итого: даже без закрытия бага с WINDOW_UPDATE h2 не был подвержен MadeYouReset. Разумеется, это во многом заслуга продуманной архитектуры h2 и hyper. Но также это и заслуга того, как реализована асинхронность в Rust: с ключевым методом Future::poll, позволяющим достаточно просто дожидаться исполнения нескольких футур одновременно, и встроенная поддержка отмены футур просто через вызов drop. Добиться подобной защиты от MadeYouReset в языке с активными тасками и явной в коде отменой (как, например, в C# или в Go с context.Done) значительно сложнее.
1 923
Repost from N/a
Есть известный мем про отсутствие менеджмента памяти в ракетах, потому что она утекает дольше, чем ракета летит
Тут, видимо, новый кейс нашёлся
1 923
Обнаружил, что в коде по работе одно и то же поле примитивного целочисленного типа имеет разный смысл в зависимости от того, в каком типе хранится объемлющая структура.
#бомбёжкипост
1 923
Repost from Астрофизика и митенки
Вроде никакой конфиденциальной инфы тут нет, так что не могу не поделиться этой шедевральной идеей )
Контекст - активисты из разных уголков земного шара придумывают разные способы оставаться на видеосвязи с активистами из РФ
1 923
#prog #rust хайлайты:
Реализовали derive через macro_rules!-макросы. Учитывая, насколько часто код, генерируемый derive, весьма простой, это позволит сильно упростить их написание, а также избежать выделения отдельного крейта только под процедурный макрос и, разумеется, не компилировать макрос в отдельную программу, которая общается с компилятором по RPC.
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
