1.19, Аноним (19), 12:20, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
- const unsigned sum = unsigned(name.size() + value.size());
+ size_t sum;
+ if (qAddOverflow(size_t(name.size()), size_t(value.size()), &sum))
+ return HeaderSize();
Ну забыли проверить размер, ну бывает!
| |
|
2.22, Агл (?), 13:13, 06/01/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
"Безопасность в коде определяется не отсутствием дыр, а возможностью программистов их вовремя прикрывать!"
| |
2.32, Аноним (32), 15:20, 06/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
По версии местных ыкспертов, программисты, которые допускают такие ошибки, должны быть разжалованы из программистов, а проект быть нареченным говнокодом. Правда, за десятки лет так и не научились писать на языках с ручным управлением памяти без ошибок, так что по такой логике нет настоящих программистов.
| |
|
3.37, Аноним (37), 18:19, 06/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Именно так, потому как надо точно понимать то что ты пишешь и хотя бы владеть инструментами тестирования если ты такой тупой.
Чтобы писать на языках с управлением памятью надо почитать как это делается и иметь обычай перепроверять вручную все обращения к памяти.
А если эти упыри с с искуственным интеллектом заведут работать суперкомпьютер высчитывая вероятность написать код правильно ударами модотка по корпусу, то скорее всего он еще и выдаст что шанс ненулевой даже, хотя всем понятно что именно нулевой на практике.
| |
|
4.44, Аноним (44), 23:39, 06/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> и хотя бы владеть инструментами тестирования если ты такой тупой.
гугловцы утверждают, что мало помогает, прям совсем. Но да, поверю тебе, что они там просто все тупые, поголовно.
| |
|
5.55, Аноним (55), 09:22, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Наоборот, гугловцы предлагают одни из лучших инструментов для тестирования и они помогают им еще как! Хром почти не крашится, уязвимостей немного и оперативно исправляются.
| |
|
4.86, Аноним (86), 21:27, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Судя по тому что практически в любом мало мальски крупном проекте был юи такие ошибки, то стоит признать что ручное управление памятью оно не для кожанных мешков с костями. Раз за несколько десятков лет этот класс ошибок не только не остался в прошлом, но и остаётся в топе популярных.
| |
|
|
2.35, Аноним (6), 15:45, 06/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
>> if (qAddOverflow(size_t(name.size()), size_t(value.size()), &sum))
зачем вообще писать на С++ генерируя такие конструкции
| |
|
|
4.67, Аноним (67), 16:38, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Тут гогнодизайн в самом API: вместо того, чтобы size() ф-ии как, и везде в мире, возвращали size_t, они возвращают ssize_t (знаковый тип). Нужно, очевидно, наконец таки убрать маразм из своей кодовой базы, ну или сделать костыль в виде некой свободной ф-ии типа питоновского len(...)
| |
4.68, Аноним (67), 16:44, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну и qAddOverflow(...) зачем-то берёт последний аргумент по указателю, хотя в данном случае нужно по ссылке. Так обычно делают когда аргумент опиционален, но здесь он обязателен и если положить nullptr, то код сложится. В общем, весь Qt устарел на не один десяток лет. Ссылки в с++ появились где-то в 1985, первый Qt появился в 1991.
| |
|
3.40, _ (??), 20:32, 06/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> зачем вообще писать на С++ генерируя такие конструкции
А ты вообще в курсе _ЧТО_ такое Qt ?!
... не думаю! ;-)
| |
|
2.49, Аноньимъ (ok), 04:19, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
А если всё проверять то будет не производительно (( и код дольше писать.
Окажется что сишечка не быстрее гошечки да джавы. А так нельзя.
| |
|
3.69, Аноним (67), 16:48, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
В данном случае это особенность формата HPACK, он хитрый и нужно много проверять. Тут проверки на итоговые задержки практически не повлияют. Во всяком случае сначала нужно написать корректный код с проверками, а потом аккуратно оптимизировать. Тут же сразу на от...сь сложили два unsigned и результат проверили на переполнение сравнением с max<unsigned>(). Даже не пытались не нагогнокодить
| |
|
4.76, Аноньимъ (ok), 17:12, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Во всяком случае сначала нужно написать корректный код с проверками
Автоматически увеличивает строк кода в сишечной программы в 3-5 раз. Соответственно и трупрограммисто рабочих часов. На самом деле часов будет больше, так как растёт не линейно.
> Тут же сразу на от...сь сложили два unsigned
Обычная сишечная практика.
> и результат проверили на переполнение сравнением с max<unsigned>()
И вот реально, наняли же на работу, платят человеку ЗП.
> Даже не пытались не нагогнокодить
По другому почти никогда и не бывает. Особенно с сишкой. Потому как читать первую часть комментария, иной подход требует очень дорогих специалистов и кучу человеко-часов.
| |
|
5.79, Аноним (67), 17:35, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Чушь пишеь, это c++ и здесь всё можно посахарить до уровня питона
| |
|
6.81, Аноньимъ (ok), 18:29, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Сишка и сипипишка конечно отличаются. Сишка просто несколько хромосом лишних имеет. Но сипипишка страдает острой маниакальной шизофренией.
Да, можно включить в сипипишке рантайм чек, добавить управление памятью, и завернуть бездумные адские "шаблоны" и прочую сатанинскую жуть в что-то более няшное.
Только С# изобрели много много лет назад, и ненужно вот таким вот в нём заниматься вообще, оно уже всё там есть.
| |
|
7.90, Аноним (90), 21:48, 07/01/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
>С# изобрели много много лет назад
Ага, каждая программа гвоздями прибита к конкретной .Net Core, дофига зависимостей и пакетам нюгета. Ффзвезду ЯП с таким рантаймом.
| |
|
8.91, анон (?), 23:24, 07/01/2024 [^] [^^] [^^^] [ответить] | +/– | Net поддерживает компиляцию в нативный код как и Java к слову, но с ограничени... текст свёрнут, показать | |
|
|
|
|
|
|
2.63, cheburnator9000 (ok), 13:11, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Просто кому-то захотелось выпендриться и написать феерическое "const unsigned" чтобы что не ясно, вместо условного unsigned long long или Qt-шного quint64.
| |
2.77, Аноним (67), 17:15, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Размер то они проверили, но не осилили сложить два unsigned без переполнения
| |
|
1.20, Аноним (20), 12:35, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
При каких условиях можно достичь 2 ГиБ данных на один HTTP-заголовок... 0_o
| |
|
2.25, Аноним (23), 13:37, 06/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Куки OAuth2, например. Если они оказались всего 4 Кб, то вам просто повезло, выдали минимальный набор атрибутов. А в расширенном может быть всё, что угодно, включая home video в качестве параметров биометрии.
| |
2.54, Аноним (54), 08:03, 07/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Многие уязвимости как раз происходят, котому что "кому в голову придет посылать 2Гб хидер?"
| |
|
3.72, Аноним (67), 16:53, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Не, это не так работает. Присылается 1 байт, а в заголовке указывается что на самом деле много больше. Гогнокодеры, которые не валидируют данные, в итоге получают выход за границы буфера
| |
|
2.71, Аноним (67), 16:52, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Это защита от намеренных атак на протокол, клиент/сервер могут прислать что угодно
| |
|
|
|
3.30, Аноним (30), 15:09, 06/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Они вроде собирались переходить на открытие исходников коммерческой версии через 5 лет только.
| |
|
|
|
2.95, Аноним (95), 10:22, 08/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
В расте в релизе по дефолту отключены проверки на переполнение чисел. Там были бы ровно такие же проблемы.
| |
|
1.36, Аноним (36), 16:21, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Замечу, что это в том числе следствие подхода «Qt — это экосистема», с дурацким стремлением всё переписать и всё втянуть в себя, вместо того чтобы пилить UI–toolkit.
| |
|
2.46, Аноним (26), 02:15, 07/01/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Так всё порезано на модули. Используйте себе на здоровье только QtGui, если надо.
| |
|
3.65, Аноним (65), 13:36, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Что в самом Qt GUI багов и недоделанных фич мало, что ресурсы разбазаривают на всякое на коленке сделанное ненужно, которое никто адекватный использовать не будет.
| |
|
4.66, Аноним (20), 15:03, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну как бы всё это можно использовать и в приложении гуишном, например, впн-клиент
| |
4.83, Аноним (26), 21:06, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Опять же, если нужно кроссплатформ, то практически безальтернативно. А так поробуйте, чтобы вот это вот всё с миру по нитке, сборная солянка везде, не то чтобы даже заработала, а просто собралась и для разных дистров Linux, и для xBSD, и для оффтопиков разных.
| |
|
|
|
1.39, Аноним (39), 20:10, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Вколько раз говорили: тулкиты зло. Закопать свою реализцию и заменить на libcurl - и проблема решена.
| |
|
2.42, _ (??), 20:36, 06/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
... до тех пок пока в libcurl не найдут прекрасное :)
PS: опенет заполонили какие то пугливые карапузики! А ... ну дык - каникулы :)
| |
|
3.45, Аноним (45), 01:17, 07/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Автор libcurl занимается написанием http-библиотеки профессионально. Авторы Qt - чисто для галочки.
| |
|
4.74, Аноним (67), 17:08, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Но не умеет писать нормальную документацию. В частности, нет обзорной справки о устройстве кишок библиотеки, нет нормального пояснения в каких уровнях по API её можно использовать и т.д. Везде начинает ходить вокруг да около частностями, а обо всём выше читатель должен догадываться сам. Хотя для встраивания куда-либо это самые первые и важные вопросы. Либа в curl тоже в основном для галочки, основной его продукт это сама утилита.
| |
|
5.97, Ананимус (?), 11:11, 08/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Либа в curl тоже в основном для галочки, основной его продукт это сама утилита.
Очень спорное утверждение. libcurl используется в git, cmake, rsyslog, libreoffice, icecast и куче других проектов.
| |
|
|
|
|
1.57, Аноним (55), 09:59, 07/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Учитывая огромный объем проекта Qt всего одна уязвимость такого рода это не просто хорошо, это отлично. Осознайте масштаб проекта.
| |
|
2.75, Аноним (67), 17:11, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Просто на Qt мало чего сделано, где могут искать уязвимости. Только неадекват будет использовать Qt сверх GUI для важного кода
| |
|
|
4.89, Аноним (90), 21:43, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
KDE - это абсолютно неважный код. Судя по тому, что плазма по-прежнему падает.
| |
|
5.92, Аноним (92), 23:30, 07/01/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
И самое странное, что она падает только у тех, кто ей не пользуется.
| |
|
4.111, Аноним (67), 18:17, 08/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Проект KDE может иметь какое угодно мнение, но оно никого не волнует с их менее 1% использования на десктопах. Массово не интересны ни потенциальным кулхацкерам, ни исследователям проблем с безопасностью.
| |
|
|
|
|