1.5, Аноним (5), 13:25, 29/03/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
На самом деле, утомительно по 10 раз перепроверять, что вон тот васянопакет на самом деле настояший васянопакет, и вовсе не соседний, поддельный с малварью. И Snyk тут не всегда поможет (да и сам он выглядит, как скам).
| |
1.7, Аноним (7), 13:26, 29/03/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Адекватные люди ставят все pure-python пакеты исключительно из исходников, бинарные - по возможности из дистра, по возможности - компилируют сами.
| |
|
2.8, Аноним (8), 13:36, 29/03/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
А как отличить правильный исходник от «немножко изменённого»? У бинарника хотя бы чексумма есть...
| |
|
3.31, Аноним (31), 17:36, 29/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вот бинарник от подправленного ты никак не отличишь - злоумышленник и сумму пересчитает, и ключом своим подпишет, и ссылку на ключ на свою заменит.
А исходник... исходник — он живой! В него правки вносятся постоянно. Захватят контроль над репозиторием — автор обнаружит. От вредительства самим автором это никак не защитит, от этого только Чучхе с лично написанным всем софтом и лично сделанным всем железом. А то, что это нереализуемо — это не отменяет гарантий метода, нет софта - некого винить ведь!
| |
|
4.65, Аноним (65), 17:41, 30/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
В том то и дело, что нашли. В бинарнике бы её даже выискивать не стали.
| |
4.66, Аноним (66), 17:46, 30/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
И подчеркну - бэкдор был именно в релизах, которые обычно никто не смотрит, потому что все разрабы работают с git. А спалили именно на работе с другими разрабами. Если бы xz был поддерживаемым - спалили бы гораздо раньше. Но он фактически не был никому интересен. Как и bitmessage, в котором тоже был явный бэкдор, RCE, вообще никак не спрятанный - публично сообщили только после начала массовой атаки. Не пользуйтесь проектами с низким числом независимых разрабов и индикаторами мутности, или читайте и аудируйте их исходники сами.
| |
|
5.68, Аноним (5), 19:23, 30/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Неа, никто ничего не заметил за 2 месяца и растащили повсюду, в том числе по дистрам. Никто не использует гит/свн и т.д., понятное дело все берут релизный архив с исходниками, а он-то и заражён. То, что он соответствует реальным исходникам, никто не проверяет, как мы видим.
| |
|
6.70, Аноним (70), 16:13, 31/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Повторяю: недоумки берут архив с релизами. Просто потому, что для архива нужен просто curl, а для релиза - git + git-lfs + libcurl для фетча по http + настройка (которую можно сделать черрез переменные окружения), потому что гит откажется даже клонировать, пока никнейм и email не задашь.
| |
|
7.71, Аноним (5), 16:43, 31/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Дело в том, что это быстрее и лучше поддаётся автоматизации. И разве люди, сношающиеся с гитхабами и их ограничениями скорости, не недоумки? Самые настоящие. Проблема не в используемых инструментах, проблема в том, что пользователям получать дерево достаточно болезненно, а если ещё разные ветки с тегами выкачивать придётся, то всё.
| |
|
|
|
|
|
2.9, Аноним (5), 13:38, 29/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Смотри, перечень пакетов со сборкой которых возникли сложности лично у меня только на той неделе. Каковы будут дальнейшие рекомендации? О, я бы сейчас с удовольствием предоставил ещё и гигабайты максимально мутных логов, но так, навскидку? И чёт почти ничего в репах и не водится. А если и есть, то протухшее и неактуальное.
thinc, blis, pyee, tensorflow, srsly, cupy
| |
|
|
4.12, Аноним (5), 14:15, 29/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ты не понял. Тысячи пакетов я скомпилировал, включая все используемые пакеты в pypi. Кроме этих. А эти ну никак не компилируются. Дальнейшие действия? В итоге, есть только блобы в pypi и больше ничего. И игры с тулчейнами тоже ни к чему не приводят. Какой вообще смысл их компилировать разработчику? Правильно, никакого. А пользователи могут взять ровно те же общедоступные блобы, собранные в непонятных условиях.
| |
|
3.30, Аноним (30), 17:31, 29/03/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
>tensotflow
Сказано:
>по возможности
Tensorflow я сам ставлю из бинарей. Потому что Гуглаг специально саботируют его сборку всеми, кто не может терпеть базель.
А сам список пакетов как бы намекает, что вы ставите всё подряд. У меня и за полгода такого длинного списка с проблемами не наберётсяж
| |
|
|
5.36, Аноним (36), 17:48, 29/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Я себе просто отключил проверку зависимостей в pip. Доустанавливаю если что-то не работает вне зависимости от того, что записано в METADATA. И такое гигантское дерьмо приходится ставить из бинарных пакетов. Ручками. Из исходников ставлю всякую мелочь вроде colorama, setultools, pip, etc. И если учитывать зависимости, то у самого TensorFlow дофига бинарных зависимостей.
| |
|
|
|
|
3.37, Аноним (36), 17:52, 29/03/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Более сотни - это лишь те, что я полностью сам написал, без учёта превосходящего вклада в чужие пакеты, большая часть из которых pure python.
| |
|
4.38, Аноним (36), 17:56, 29/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
под pure python имеется в виду отсутствие компиляции cext или долботни с maturin/setuptools-rust, что пакет можно установить просто распаковкой. Это не означает отсутствие зависимостей от компонентов в native-коде, таких как сам интерпретатор, shared-библиотеки, другие пакеты, jar-файлы, .Net-сборки, ONNX-файлы и т.д.
| |
|
5.39, Аноним (5), 18:11, 29/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Правда, pure python _именно это_ и означает: только интерпретируемый код, без использования нативного (компилируемого) в любом виде, за исключением интерпретатора и его стандартных бинарных компонентов. И, в частности, без таких трюков как освобождение gil на время, пока нативный код исполняется. По этой же причине, такой код является третьесортным -- он просаживается в многопотоке.
| |
|
6.40, Аноним (40), 18:54, 29/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
>за исключением интерпретатора и его стандартных бинарных компонентов
О, оправдания пошли! Для меня pure-python пакет - это пакет, состоящий из кода на языке Python. Он может зависеть от нативных либ и прочих вещей, но эти вещи в состав пакета не входят. Поэтому сборка пакета своидится к созданию zip-архива нужного формата, а установка - к его распаковке. И почти не зависит от версии питона, а даже если зависит - то юзеру не придётся иметь на компе тулчейн (который в запущенных случаях должен быть MSVC). Ну ещё setuptools может сгенерить бинари для console_scripts в процессе установки (да, их не pip генерит, а setuptools)
| |
|
7.73, Пряник (?), 10:30, 01/04/2024 [^] [^^] [^^^] [ответить]
| +/– |
Например, Paramiko не pure-python, потому что зависит от cryptography, написанном на Си. А вот Bottle является одиночным файлом без зависимостей.
| |
|
6.72, Пряник (?), 10:25, 01/04/2024 [^] [^^] [^^^] [ответить]
| +/– |
Есть модуль multiprocessing. Между разными процессами GIL не используется.
| |
|
7.74, Аноним (5), 10:49, 01/04/2024 [^] [^^] [^^^] [ответить]
| +/– |
Зато добавляются накладные расходы, IPC очень дорого и невозможно шарить конекшены допустим. Вообще, я сравнивал на примере requests, намного выгоднее быстрее удобнее и эффективнее взять aiohttp. Раньше приходилось обмазываться pycurl, но, среди прочих недостатков, он не работает с асинхронным кодом и его слишком легко засегфолтить.
| |
|
8.75, Пряник (?), 15:05, 01/04/2024 [^] [^^] [^^^] [ответить] | +/– | Ну так про GIL говорили же А GIL никак не связан с однопоточной природой Asynci... текст свёрнут, показать | |
|
|
|
|
|
|
|
1.29, Alladin (?), 17:08, 29/03/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Как можно из 16 пакетов сделать 566, кажись это очень эффективные менеджеры:)
| |
1.35, Пряник (?), 17:43, 29/03/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
И куда он отправляет пароли? Давайте уже вычислим по IP этого мамкиного шалунишку.
| |
|
|
3.49, Аноним (49), 07:14, 30/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
Нет, это тебе надо чтобы тут пользователь вычислил! (иначе бы комментарии не писал)
Так что сам вычисляй!
| |
|
2.54, Аноним (54), 11:11, 30/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
>И куда он отправляет пароли?
На какой-нибудь бесплатный хостинг/ВПН, естественно.
| |
|
1.48, Аноним (48), 03:25, 30/03/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
А нельзя сделать просто проверку на похожесть и не разрешать имена пакетов, похожие на существующие?
| |
|
2.57, Прохожий (??), 12:27, 30/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
>проверку на похожесть
Во сколько символов разница должна быть, чтобы название не считать похожим?
| |
|
1.52, Аноним (52), 10:13, 30/03/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
> 38 - Matplotlib
Любые "научные" книги, в том числе по ИИ, содержащие упоминание технологий Python, приобретению, прочтению и использованию в практических целях не подлежат. Хотя мнения своего никому не навязываю. Впрочем, результат и так описан в статье.
| |
1.55, Вы забыли заполнить поле Name (?), 12:01, 30/03/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Надо запрещать похожие названия, а вообще давно пора по умолчанию сделать username/package как схему именования, тогда злоумышленникам придётся имя пользователя делать похожим, но и его можно запретить.
| |
|
2.58, Прохожий (??), 12:28, 30/03/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Во сколько символов разница должна быть, чтобы название не считать похожим?
| |
|
3.61, Аноним (52), 13:57, 30/03/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Очевидно, коллега - специалист по сравнению
> Тёплое с мягким
Поэтому будет делать это
> сам | |
3.64, Вы забыли заполнить поле Name (?), 16:41, 30/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Во сколько символов разница должна быть, чтобы название не считать похожим?
Очевидно разница может быть равна нулю. Функция похожести будет сложнее чем просто сравнение длин.
| |
|
2.62, чатжпт (?), 14:14, 30/03/2024 [^] [^^] [^^^] [ответить]
| +/– |
> вообще давно пора по умолчанию сделать username/package
и будут тайпсквотить имена разрабов кроме имени пакета
| |
|
3.63, Вы забыли заполнить поле Name (?), 16:40, 30/03/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> вообще давно пора по умолчанию сделать username/package
> и будут тайпсквотить имена разрабов кроме имени пакета
Для тайпскотинга имени пакета нужна 1 учетная запись, для имени пользователя N. Это сильно усложнит вредителям жизнь. К тому же никто не мешает запретить похожесть имен пользователей, чтобы избежать проблем, описанных в новости.
| |
|
|
1.69, Аноним (69), 11:32, 31/03/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Ну парни, кожанные мешки не могут называться программистами, если попадаются на тайпсквотинг ловушку СЕОшников.
Это джунгли, прежде чем выбирать библиотеку нужно чекать название из нескольких источников.
| |
|