1.83K subscribers
3.25K photos
128 videos
15 files
3.53K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Forwarded from Neural Meduza
МВД предложило ввести уголовную ответственность за административную ответственность
🫡14😁6🌚2
#meme про газебо
9🥴7😁1
🥰16🤡11🤮4🌚3😁2💯2
#prog #rust хайлайты:

Реализовали derive через macro_rules!-макросы. Учитывая, насколько часто код, генерируемый derive, весьма простой, это позволит сильно упростить их написание, а также избежать выделения отдельного крейта только под процедурный макрос и, разумеется, не компилировать макрос в отдельную программу, которая общается с компилятором по RPC.
5👍4🤯2🔥1
#meme про Firefox

(thanks @shiroyashiko)
😁4313💯8🥰1🤡1
М-да
🌚8❤‍🔥3😱3🤮3🖕2🤔1
Своего рода #ml #meme

(thanks @eugene_horny_memes)
😁25🤯2😢1🌚1
😁12👎8🤡4💯2🤯1
Вроде никакой конфиденциальной инфы тут нет, так что не могу не поделиться этой шедевральной идеей )

Контекст - активисты из разных уголков земного шара придумывают разные способы оставаться на видеосвязи с активистами из РФ
😁27🤣13
Обнаружил, что в коде по работе одно и то же поле примитивного целочисленного типа имеет разный смысл в зависимости от того, в каком типе хранится объемлющая структура.

#трудовыебудни #бомбёжкипост
😭17❤‍🔥2🤯1
Есть известный мем про отсутствие менеджмента памяти в ракетах, потому что она утекает дольше, чем ракета летит

Тут, видимо, новый кейс нашёлся
🤡18🤣15😁3
7
Forwarded from commit -m "better"
😁24❤‍🔥4
#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) значительно сложнее.
11👍7🔥4
#meme про Телеграм-канал?..
🥰126👎5😁4🍌3💩2🤮1🙏1🤡1🖕1
@tech_b0lt_Genona подкинул бота. Смешно, конечно, что проанализировал текст из поста Пездузы
Forwarded from Admin Tools + AI 🔮
📊 Политический анализ канала
Блог* (@dereference_pointer_there)

📍 Диагноз: КЛАССИЧЕСКИЙ ЛИБЕРАЛИЗМ

💭 Обоснование:
Автор пишет о технических деталях, открытом доступе к научным данным и критически относится к государственному вмешательству (пример: «МВД предложило ввести уголовную ответственность за административную ответственность»). Такие позиции типичны для либертарианского правого направления, поддерживающего свободный рынок и минимальное государственное регулирование. При этом экономические взгляды нейтральны‑светло‑правые (упоминаний о перераспределении или соц‑политике нет). Поэтому выбранная идеология – КЛАССИЧЕСКИЙ ЛИБЕРАЛИЗМ, а координаты отражают лёгкое смещение вправо и умеренную либертарианскую позицию.

📅 28.08.2025 14:44
AdminTools. Подписаться