The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Уязвимость в приложениях на базе HTTP-библиотеки Hyper, opennews (??), 06-Янв-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


201. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  –1 +/
Сообщение от Прохожий (??), 07-Янв-23, 13:03 
О великий эксперт. А где ты потом собирать будешь эти чанки? Почитай на досуге про UDP, например.
Ответить | Правка | К родителю #181 | Наверх | Cообщить модератору

210. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  –1 +/
Сообщение от Аноним (228), 07-Янв-23, 13:38 
Никогда не останавливайся на полпути, позорься до конца!

Ты хотя бы посмотри как чтение кусками из UDP реализовано в популярном софте. Боже, растоманы РЕАЛЬНО думают, что UDP весь(!!!) целиком(!!!) надо прочитать в мега-огромный-буфер  прям из сети?

Ответить | Правка | Наверх | Cообщить модератору

212. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +/
Сообщение от Прохожий (??), 07-Янв-23, 13:56 
Упоминание UDP - это была попытка намекнуть, что не все так просто, как сишники себе вообразили.

Заодно предлагаю тебе поразмыслить (понимаю, для сишников это сложная когнитивная задача, но ты хоть попытайся) , что в данном конкретном случае речь идёт об универсальной  БИБЛИОТЕКЕ, а не о конечном продукте, который, конечно, знает, что ему следует ожидать из сети, а что может игнорировать.

Ответить | Правка | Наверх | Cообщить модератору

223. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  –1 +/
Сообщение от Омномним (?), 07-Янв-23, 16:01 
Хорошее упоминание. Ты собрался весь поток UDP за неизвестный период в память тащить, или всё-таки будешь его "клиенту" отдавать, чтобы тот решал сам, что с ним делать?
Ответить | Правка | Наверх | Cообщить модератору

224. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  –1 +/
Сообщение от Омномним (?), 07-Янв-23, 16:02 
Собственно об чём и речь. УНИВЕРСАМНАЯ либлиотека оказалась ни фига не универсальной, а заточенной только на очень специфичный вариант применения - когда всё в память помещается. Растожабаскриптерство - оно такое.
Ответить | Правка | К родителю #212 | Наверх | Cообщить модератору

266. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +1 +/
Сообщение от Аноним (90), 07-Янв-23, 23:35 
Если ты туда всунешь какой-то лимит на размер буфера она перестанет быть универсальной. На малинке с 2Г оперативы для кастомной программы там одни лимиты будут, для суперкомпа с терабайтом оперативы в защищенном периметре, где к нему не обращаются неавторизованные хосты и программы - другие лимиты. А так впендюришь ты 640KB и скажешь - "этого должно хватить на всё! Универсально!". Универсальность как раз в том, что её могут использовать по разному, под разные нужды. Проблема в том, что кто-то не прочел документацию и не проникся этой универсальностью создавая уже свой продукт. Тут уже от ЯП не зависит. И чего я бисер мечу перед вами...
Ответить | Правка | Наверх | Cообщить модератору

295. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +/
Сообщение от Омномним (?), 08-Янв-23, 11:56 
Ты в курсе, что лимит может быть конфигурируемым со стороны клиента?
Ответить | Правка | Наверх | Cообщить модератору

269. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  +1 +/
Сообщение от Аноним (269), 07-Янв-23, 23:57 
> Собственно об чём и речь. УНИВЕРСАМНАЯ либлиотека оказалась ни фига не универсальной,
> а заточенной только на очень специфичный вариант применения - когда всё
> в память помещается. Растожабаскриптерство - оно такое.

https://docs.rs/hyper/latest/hyper/body/fn.aggregate.html
> Aggregate the data buffers from a body asynchronously.
> The returned impl Buf groups the Bufs from the HttpBody without copying them. This is ideal if you don’t require a contiguous buffer.

https://docs.rs/hyper/latest/hyper/body/trait.Buf.html
> fn remaining(&self) -> usize
> Returns the number of bytes between the current position and the end of the buffer

И зачем ты так громко пустил метан в лужу?

Ответить | Правка | К родителю #224 | Наверх | Cообщить модератору

222. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  –1 +/
Сообщение от Омномним (?), 07-Янв-23, 16:00 
Жаборастера видно издалека, да.
Собирать будет "клиентский" код - там, где ему надо. С лимитами и т.п.
Простая проблема мерзкого дизайна. Либа должна отдавать не весь контент целиком, если он большой, а его куски, наподобие read(), с предзаданной длиной. Тогда и чанки будут читаться кусочками, и сборка будет мягкой и шелковистой. Зачем например тащить в память весь гиговый файл, если его можно на диск кусками писать?
Ответить | Правка | К родителю #201 | Наверх | Cообщить модератору

225. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  –1 +/
Сообщение от Омномним (?), 07-Янв-23, 16:04 
И чего?
У меня сейчас допустим есть асинхронная корутинная реализация HTTP на PHP.
Она вполне себе клиенту что хедеры, что контент в обе стороны отдаёт кусками - через эксплицитный запрос на чтение. Кусками читает с сокета, кусками парсит (попутно применяя лимиты на те же хедеры, чтобы многомегабайтный хедер не скушать), и кусками же отдаёт по readHeader() / readHeaders() / readContent(). Клиент сам решит, что делать с очередным куском - буферизовать или свалить куда-либо.
Ответить | Правка | К родителю #201 | Наверх | Cообщить модератору

226. "Уязвимость в приложениях на базе HTTP-библиотеки Hyper"  –1 +/
Сообщение от Омномним (?), 07-Янв-23, 16:11 
А для универсальности там же есть - readAllHeaders() / readFullContent(), первое читает с лимитом, второе - когда длина контента клиенту уже известна, и клиент хочет всё целиком. Внутри это просто обвязка к вышеупомянутым.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру