The OpenNET Project / Index page

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

Опубликован анализатор, выявивший 200 вредоносных пакетов в NPM и PyPI

02.05.2022 14:25

Фонд OpenSSF (Open Source Security Foundation), сформированный организацией Linux Foundation и нацеленный на повышение безопасности открытого ПО, представил открытый проект Package Analysis, развивающий систему анализа наличия вредоносного кода в пакетах. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Предварительное сканирование репозиториев NPM и PyPI при помощи предложенного инструментария позволило выявить более 200 ранее не замеченных вредоносных пакетов.

Основная часть выявленных проблемных пакетов манипулирует пересечением имён с внутренними непубличными зависимостями проектов (атака dependency confusion) или используют методы тайпсквотинга (назначение имён, похожих на названия популярных библиотек), а также вызывают в процессе установки скрипты, обращающиеся к внешним хостам. По мнению разработчиков Package Analysis, большая часть выявленных проблемных пакетов скорее всего создана исследователями безопасности, участвующими в программах получения вознаграждений за выявление уязвимостей (bug bountie), так как отправляемые данные ограничиваются именем пользователя и системы, и действия выполняются явно, без попыток скрыть своё поведение.

Из пакетов с вредоносной активностью отмечаются:

  • PyPI-пакет discordcmd, в котором зафиксирована отправка нетипичных запросов к raw.githubusercontent.com, Discord API и ipinfo.io. Указанный пакет загружал код бэкдора с GitHub и устанавливал его в каталог Windows-клиента Discord, после чего запускал процесс поиска токенов Discord в файловой системе и отправки их на внешний Discord-сервер, подконтрольный атакующим.
  • NPM-пакет colorsss, который также пытался пересылать на внешний сервер токены от учётной записи в Discord.
  • NPM-пакет @roku-web-core/ajax - в процессе установки отправлял данные о системе и запускал обработчик (reverse shell), принимающий внешние соединения и запускающий команды.
  • PyPI-пакет secrevthree - запускал reverse shell при импортировании определённого модуля.
  • NPM-пакет random-vouchercode-generator - после импортирования библиотеки отправлял запрос на внешний сервер, который возвращал команду и время в которое её необходимо запустить.

Работа Package Analysis сводится к анализу в исходных текстах пакетов кода для установки сетевых соединений, доступа к файлам и запуска команд. Дополнительно отслеживается изменение состояния пакетов для определения добавления вредоносных вставок в одном из выпусков изначально безобидного ПО. Для мониторинга появления новых пакетов в репозиториях и внесения изменений в ранее размещённые пакеты применяется инструментарий Package Feeds, унифицирующих работу с репозиториями NPM, PyPI, Go, RubyGems, Packagist, NuGet и Crate.

Package Analysis включает три базовых компонента, которые могут использоваться как в связке, так и по отдельности:

  • Планировщик запуска работ по анализу пакетов на основе данных из Package Feeds.
  • Анализатор, непосредственно проверяющий пакет и оценивающий его поведение с использованием методов статического анализа и динамической трассировки. Проверка осуществляется в изолированном окружении.
  • Загрузчик, помещающий результаты проверки в хранилище BigQuery.


  1. Главная ссылка к новости (https://openssf.org/blog/2022/...)
  2. OpenNews: Обновление рейтинга библиотек, требующих особой проверки безопасности
  3. OpenNews: Инициатива Alpha-Omega, нацеленная на повышение безопасности 10 тысяч открытых проектов
  4. OpenNews: Фонд повышения безопасности открытого ПО получил финансирование размером 10 млн долларов
  5. OpenNews: Учреждён проект OpenSSF, сфокусированный на повышении безопасности открытого ПО
  6. OpenNews: В репозитории NPM выявлено 25 вредоносных пакетов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57123-openssf
Ключевые слова: openssf, package, analyser
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (97) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Смузихлёб (ok), 15:48, 02/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +37 +/
    Смузихлёбство захватило мир IT. Сейчас если ты пишешь свои реализации на стандартной библиотеке с нуля, на тебя будут смотреть как на пришельца.
     
     
  • 2.3, corvuscor (ok), 16:26, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –12 +/
    > Сейчас если ты пишешь кривые тормозные велосипеды на стандартной библиотеке с нуля

    поправил, не благодари

     
     
  • 3.4, Смузихлёб (ok), 16:38, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +14 +/
    >> велосипеды

    Ошибся сайтом, тебе на харбрахарбар с такими загонами. А настоящий инженер и программист ВСЕГДА пишет всё с нуля. Ну а если считаешь, что лучше подтянуть смузиJS-фреймворк на пару десятков мегабайт ради тривиальной задачи, которая решается двумя десятками строчек кода, то тебе не место в IT.

     
     
  • 4.7, Аноним (7), 16:49, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А настоящий инженер и программист ВСЕГДА пишет всё с нуля.

    - Операционную систему со всем набором дров.
    - ИДЕ, офисный пакет, компиляторы всех языков и все ЯП соответственно. И ещё много-много прикладного софта.
    - Свои сетевые протоколы.

     
     
  • 5.8, Смузихлёб (ok), 16:53, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Да.
     
  • 5.10, Аноним (10), 17:10, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > компиляторы всех языков

    Зачем - всех?!

     
     
  • 6.18, Без аргументов (?), 18:19, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Женская логика. Если несколько, значит всегда. Если сейчас нет, значит никогда.
     
     
  • 7.71, Аноним (71), 23:55, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    получается они - ситхи?
     
  • 6.22, Аноним (22), 18:47, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Достаточно Си. Всё-равно все остальные - надстройки над Си.
     
     
  • 7.79, Аноним (79), 01:34, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Достаточно ассемблера и перфокарт для хранения данных
     
     
  • 8.94, Да ну нах (?), 13:04, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Забыл добавить чемодан для хранения перфокарт ... текст свёрнут, показать
     
  • 4.13, Аноним (13), 17:29, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    С таким подходом место будет только на помойке. Такие уже нигде нужны... почти
     
     
  • 5.32, Аноним (32), 19:19, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    бомжу видней, да
     
  • 4.29, Аноним (-), 19:11, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –8 +/
    >А настоящий инженер и программист ВСЕГДА пишет всё с нуля.

    Какой дивный идиотизм. :D Да еще и наплюсовать сам себя умудрился.

     
  • 4.44, Аноним (44), 20:15, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А настоящий инженер и программист ВСЕГДА пишет всё с нуля.

    libc тоже с нуля писать?

     
     
  • 5.46, Sw00p aka Jerom (?), 21:21, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +8 +/
    а шо тут такого? мозги кипят, когда начинаешь думать как исполняет код машина?
     
     
  • 6.50, Смузихлёб (ok), 21:31, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > а шо тут такого? мозги кипят, когда начинаешь думать как исполняет код машина?

    Недавно собеседовал парнишку лет 20, он так и не смог объяснить в какой последовательности происходит инициализация, проверка условия и итерация переменной управления циклом for. Об отличии шины данных от шины адреса я спрашивать не стал. Зато могЁт модные фреймворки и шаблоны проектирования :)

     
     
  • 7.53, Sw00p aka Jerom (?), 21:47, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В нынешнее время спрашивать про "Об отличии шины данных от шины адреса" от парнишки в 20 лет, думаю не правильно. Ибо комп архитектуру в универах они проходят за пол семестра галопом по "западу". А если самому заниматься этим вопросом, то думаю лет через 5 (усердно) только можно прийти к ЯП высокого уровня и т.д. С другой стороны, ну формально человек знает что есть допустим Фон Неймановская архитектура, и что это ему дает если он не может ее построить с нуля или посмотреть на то, что щас используется (учитывая закрытость разработок всяких там микропроцессоров). На вопрос как это сделано, как работает и т.д. будет всегда формальный ответ, ибо это целая наука в которую надо погружаться, исследовать, а для всего этого совственно нужно время и ресурсы.
     
     
  • 8.59, Без аргументов (?), 22:50, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Фон Неймановская Ну знать таки стоит при заявах на NodeMCU, Micropython и проче... текст свёрнут, показать
     
     
  • 9.75, Sw00p aka Jerom (?), 00:31, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    предметную область в любом случае надо знать, а так знания ЯП нужны только для х... текст свёрнут, показать
     
  • 4.56, Аноним (56), 21:52, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  А настоящий инженер и программист ВСЕГДА пишет всё с нуля.

    Ну а если нужно по-быстрому решить какую-то задачу, а кто-то это сделал до тебя? Зачем тогда писать с нуля-то? С точки зрения бизнеса, затрат это будет невыгодно

     
     
  • 5.67, Аноним (56), 23:24, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ответ смузихлеба почему-то удалили, пока я печатал свой ответ ему, так что ещё п... большой текст свёрнут, показать
     
     
  • 6.87, tty0 (?), 09:38, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы путаете производство ванн произвольной формы и свойств (кислото/температуро стойких и т.п.) и конечным продуктом для потребителя (ванной для индивидуальных гигиенических потребностей).
    Это как изготовить программу для управления данными и ей пользоваться: при никто же не отрицает, что сойдёт и Access с самыми примитивными подходами, но каждый понимает и накладываемые ограничения.
    Поэтому давайте откажемся от магии и будем понимать и брат ответственность за результаты своего труда
     
  • 4.109, corvuscor (ok), 15:10, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А настоящий инженер и программист ВСЕГДА пишет всё с нуля.

    Сам же написал, что на стандартной библиотеке, а теперь уже с нуля.
    Путаешься в показаниях xD

     
  • 2.19, Без аргументов (?), 18:28, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Потому что под прикрытием оглашенной идеи снижения энергопотребления и выбросов CO по умолчанию происходит наоборот. Всё завязывается на фреймворки крупных копрораций - без одобрения которых даже СПО и прочая "свобода" не взлетит. Завязнув на электрон уже не получится без гугла и мелкософта. Завязнув на реакт уже никуда без ФБ. Я бы в гугле не смог работать, т.к. детский садик с печеньками, как остров дураков мне не по душе даже за те деньги. И это называется "развитие". И "свободными" умами вебманков ведут в централизованным облака, даже закрывая глаза на т.н. потепление серверов и рабочих станций и перерасход земных ресурсов (в западной экономике вебманк - тоже ресурс).
     
  • 2.41, Аноним (41), 20:09, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо, но тогда пиши лучше, чем есть готовое. Иначе ты в лучшем случае теряешь время, а в худшем - обманываешь своего работодателя.
     
     
  • 3.45, Смузихлёб (ok), 21:11, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    С нуля как раз и пишут для того, чтобы проект занимал меньше места, не тянул лишнего хлама в виде библиотек, и как следствие, намного более высокая скорость из-за отсутствия надстроек и прослоек. Вот только в прошлом месяце переписал с нуля весь бэкенд одного проекта, написанного кем-то до меня на фреймворке. Размер с 40 Мбайт уменьшился до 2 Мбайт, нагрузка на сервер НА ПОРЯДКИ судя по тестам. Оптимизировал всё что только можно через дебагер. Использовал исключительно стандартную библиотеку nodejs.
     
     
  • 4.54, Аноним (56), 21:51, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А что саму node.js с нуля не написал, чего мелочиться-то?
     
  • 4.55, Аноним (-), 21:51, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Оптимизировал всё что только можно через дебагер. Использовал исключительно стандартную библиотеку nodejs.
    > Смузихлёб
     
  • 4.64, Без аргументов (?), 23:04, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не смузихлеб
     
  • 4.70, Аноним (56), 23:37, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > не тянул лишнего хлама в виде библиотек

    Неужели никогда не бывает, что в библиотеке только нужные вещи, написанные одним из наилучших способов? Ту же libc ж вы не переписываете каждый раз. Так почему бы и тут не набрать кодовую базу проверенных решений, и из нее потом, как из конструктора, быстро собирать решение задачи?

     
     
  • 5.80, Смузихлёб (ok), 01:50, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В каком-нибудь фреймворке десятки или сотни различных классов и методов, едва ли 1% из них будет использоваться в проекте, остальные 99% лишь утежелят кодовую базу. И не факт что реализация нужного класса будет оптимальна для конкретного проекта. К тому же каждый фреймворк требует немало времени на изучение, порой в разы быстрее написать на стандартной библиотеке, чем ежегодно следовать веяниям моды. Сегодня моден react, завтра какой-нибудь vue, послезавтра что-то другое.
     
     
  • 6.107, Аноним (107), 11:09, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Изучения-то требует, но если фреймворк хорош, то он в разы ускоряет написание типовых вещей. А это нынче часто и нужно. Малому бизнесу зачастую не нужно сильно оригинальную сильно оптимизированную систему, нужно типовую и побыстрее.
     
  • 2.62, 89120301377 (?), 23:00, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    на сумузилебство вообще-то гнать не надо
     
     
  • 3.65, Без аргументов (?), 23:05, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я сишный гофер выжимаю сок из пырея
     
  • 2.89, Аноним (89), 10:17, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Быстро, качественно, дёшево - выбирай любые два.

    Быстро и качественно? - Дорого.
    Быстро и дёшево? - Некачественно.
    Качественно и дёшево? - Медленно.

     

  • 1.5, Аноним (5), 16:40, 02/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Смузихлёбство захватило мир IT. Сейчас если ты пишешь свои реализации на стандартной библиотеке с нуля

    Ошибаетесь, они не дебилы, это специально сделано.

     
     
  • 2.6, Смузихлёб (ok), 16:45, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Видимо, чтобы каждый год стимулировать хомячков покупать новое железо? :) Ведь сейчас даже топовый i9 долбится в сотку при прогрузке некоторых вэбсайтов нашпигованных смузиJS-библиотеками и фреймворками.
     
     
  • 3.28, Аноним21 (?), 19:03, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что мешает отключит JS?
     
     
  • 4.37, Kuromi (ok), 19:34, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    То что некоторые сайты без JS не просто ничего не показывают кроме пустого экрана, но и даже в source view ты не видишь ничего кроме инклюда скрипта, т.е. там скрипт всю страницу формирует.
    И вот долбись с ними как хочешь.
     
     
  • 5.38, Аноним (10), 19:41, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Бывает, до смешного доходит: этот скрипт делает всего лишь редирект куда-то...
     
  • 4.48, Смузихлёб (ok), 21:23, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Что мешает отключит JS?

    Невозможность открыть большинство страниц написанных на смузиJS-фреймворках.

     
  • 3.42, Аноним (41), 20:12, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –7 +/
    И что плохого в стимулировании производства нового железа? Старческие причитания, что при советской власти на 64кб в космос летали, не в счет.
     
     
  • 4.47, Смузихлёб (ok), 21:22, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если бы программы писали инженеры, а не смузихлёбы, даже в 2022 году какого-нибудь Core 2 Duo хватало за глаза для сёрфинга интернета, игр и десктопных приложений. Что такое оптимизация и дебагер 99% современных "разработчиков" знать не знают.
     
     
  • 5.69, Аноним (56), 23:35, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Невыгодно просто платить за человеко-часы, когда можно производить просто железо получше и не париться. Расходы оптимизируются таким образом, как это ни странно
     
     
  • 6.82, Смузихлёб (ok), 02:04, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зато очень выгодно придумывать новые уровни абстракций, надстроек, прослоек, усложняя ради усложнения. И повод хороший – развести бизнес на бабло, раздув бюджет, показав насколько всё сУрьёзно и сложнА. И не дай Бог кто-то узнает, что типовой одностраничник можно запилить без аджайла 😏
     
  • 6.86, HyC (?), 07:51, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Невыгодно просто платить за человеко-часы, когда можно производить просто железо получше и не париться. Расходы оптимизируются таким образом, как это ни странно

    Вот сидел какой-то юзер 20 лет назад на втором пне, 128 метрах памяти, под NT2000, в опесе 97 кнопками клацал, и в нетскейп навигаторе инеты серфил. Сегодня ровно тот же юзер сидит на i9, в 32 гигах оперативы, в опесе 365 жмет те же самые кнопки и в едже минимум на 100 мбитах инет серфит. Что характерно для юзера этого с "прогрессом" ровно ничего не поменялось, кроме появившейся и пропавшей в опесе скрепочки. И даже быстрее работать все это не стало чем 20 лет обратно.

    При таком подходе прогресса нет. Есть рубление бабла на решении проблем которые вручную же и создаются.

     
     
  • 7.93, Аноним (56), 12:54, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Прогресса как бы не существует, прогресс - это миф
     
  • 6.95, onanim (?), 13:32, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    вот етот гражданин прав.
    один человекочас норм разработчика - это, грубо говоря, 50 долларов. а 50 долларов - это плашка оперативы на 8 гигабайт.
    итого вместо того, чтобы платить разработчику за пять часов оптимизирования говнокода, дешевле купить в офисный сервер четыре плашки (+32 гб) оперативы и на оставшиеся 50 долларов нанять студента/индуса, пусть лабает доброкод.
     
     
  • 7.99, Аноним (56), 23:39, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тут  ещё стоит заметить, что плашка эта стоит дёшево только если ее огромным тиражом производить. Именно поэтому индустрия выглядит как будто бы обязывающей к обновлению всего и вся - дело в том, что она просто банально не может производить немного - чтобы окупалось, нужно произвести (и продать, соответственно) именно что много
     

  • 1.9, Аноним (9), 17:05, 02/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Удивительно как много людей пищущих на языках у которых "1" + 1 дает 11, а typeof NaN == "number" и подключающих кучу библиотек и фреймверков ради типовых операций считают себя программистами. Никакие вы не программисты, вам только смузи пить в барбершопе.
     
     
  • 2.11, Аноним (10), 17:13, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > typeof NaN == "number"

    А что должно быть?! Стринг, что ли? NaN - самое натуральное число, которое принято считать NaN-ом. Как и бесконечности.

     
     
  • 3.12, Смузихлёб (ok), 17:23, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > NaN - самое натуральное число

    Вместо уроков от гуру Ютуба, надо бы изучить матчасть, почитать умные книжки, лишь потом пить смузи и писать чушь в комментариях.

     
     
  • 4.14, Аноним (14), 17:53, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > надо бы изучить матчасть

    Вот и изучи IEEE 754, прежде чем позориться.

     
     
  • 5.88, tty0 (?), 10:01, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Изучи спецификацию инструкций процессора, чтобы узнать математику? Может и космос начать изучать нашим учёным в телескопы ММОРПГ?
     
     
  • 6.91, Ant (??), 10:43, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Математику и алгоритмы освоить в базе и тогда тех можно запускать в продакшн. Короче - на ВМК МГУ сходить и тогда курьёзы на JS станут больше выдумками, чем реальностью шутки.
     
  • 2.16, пох. (?), 18:13, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну с 11 все понятно, а что с NaN-то тебе не так? Норм жеж число?!
     
     
  • 3.49, Sw00p aka Jerom (?), 21:31, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    NaN -само определение говорит - "не число", а флаг (состояние)

    https://ru.wikipedia.org/wiki/NaN

     
     
  • 4.57, Аноним (56), 21:53, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну в других языках этот ваш NaN имеет вполне себе числовой тип float/double
     
     
  • 5.74, Sw00p aka Jerom (?), 00:27, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а что такое тип? это же фиксированный размер битов, а флагу без разницы какого он будет размера, хотите с размером флоат, хотите в один бит как ZF, OF, CF и т.д.
     
     
  • 6.77, Аноним (10), 01:00, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > а флагу без разницы какого он будет размера, хотите с размером флоат, хотите в один бит как ZF, OF, CF и т.д.

    Что ты мелешь?! Какой "один бит"? Ты формат float-а посмотри для начала, в котором NaN хранится. NaN-ом будет, например, 1.5*2^128

     
     
  • 7.83, Sw00p aka Jerom (?), 02:34, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    выше ссылку давал, если с русским туговато, вот по англ

    https://en.wikipedia.org/wiki/NaN

     
  • 6.85, Аноним (56), 05:39, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну как бы NaN определен стандартом IEEE 754 для чисел с плавающей точкой, это особое состояние. Вообще какую-то софистику развели насчёт этого NaN, число он, не число он. Какой тип по вашему у него должен быть?

    В конце концов, есть же у ссылочных типов значение NULL. Хотя вроде оно никуда не указывает. Но тип ссылочный. Вот так и NaN, не определяет никакого действительного числа, но тип float/double

     
     
  • 7.104, Sw00p aka Jerom (?), 01:15, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а какое отношение тип имеет к числу тип всего лишь трактовка в битах и их колич... большой текст свёрнут, показать
     
     
  • 8.106, Аноним (107), 05:24, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    С NaN аналогично же Условились, что NaN - это все единички в показателе и не но... большой текст свёрнут, показать
     
     
  • 9.113, Sw00p aka Jerom (?), 22:16, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    сомнений в этом нет, если принято за стандарт А вот тут собственно ошибка рассу... большой текст свёрнут, показать
     
  • 6.96, Аноним (96), 14:32, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Любители смузи просто не в состоянии понять что такое флаг и что такое тип данных. На курсах "full stack программистов за 2 месяца" об этом не рассказывают
     
     
  • 7.100, Аноним (56), 23:41, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так к любителям смузи это и адресуйте
     
  • 4.76, Аноним (10), 00:55, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты даже не удосужился прочитать свою педовикию.
     
     
  • 5.84, Sw00p aka Jerom (?), 02:39, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    давай передай в качестве аргументов сумматору "число NaN" и 1.
     
     
  • 6.101, Аноним (56), 23:41, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И будет ответ "число NaN", согласно стандарту IEEE 754
     
     
  • 7.103, Sw00p aka Jerom (?), 01:03, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И будет ответ "число NaN", согласно стандарту IEEE 754

    ну и вопрос почему будет NaN, это разве результат вычисления ? почему не бесконечность с переполнением?

     
     
  • 8.105, Аноним (107), 05:13, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что так в стандарте написано ... текст свёрнут, показать
     
  • 2.21, fsb4000 (?), 18:38, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    В C и C++ NAN это float.

    https://godbolt.org/z/4MP5aMWMb

     
     
  • 3.23, Аноним (14), 18:48, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Как и в Java:

        public static final float NaN
        https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.h

    Но хелловорлдщикам-критиканам об этом не известно.

     
     
  • 4.72, Аноним (71), 00:00, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    что будет если попытаться отсортировать массив флоатов, содержащий Nan в жаве? в плюсах видимо UB?
     
     
  • 5.78, Аноним (10), 01:06, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    а ты почитай, как работают, например, FCOM*
     
  • 5.102, Аноним (56), 23:43, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    UB в смысле Си не будет, комп не взорвется, но сравнение NaNов действительно ведет себя необычно. Но как бы NaN даже самому себе не равен, такой вот он особенный
     
  • 2.35, Аноня (?), 19:27, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты не можешь выучить простое правило приведения типов в языке, и считаешь себя программистом?
    Попробуй память прокачать - ну, стишки какие-нибудь поучить.
     
  • 2.51, Чолхан (ok), 21:31, 02/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На практике JS часто лучше чем Java, C#, Go, Rust, хотя бы за счет лучшей поддержки многозадачности (не смотря на свою однопоточную природу)), кидайте камни сюда -    
    https://betterprogramming.pub/modern-languages-suck-ad21cbc8a57c
     
  • 2.73, борланд (?), 00:04, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И что не так с приведентем типов у скриптового языка для браузера? Все логично.
    Или предпочел бы сыпать ошибками на каждых чих?
    Это бейсик для форм, а не управление космическим кораблем.
     
  • 2.92, Аноним (92), 11:44, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    "1"+ 1 так то 6  
     
     
  • 3.111, Аноним (111), 21:02, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вообще то 5. 6 - это "11"
    А если в ASCII то 50
     
  • 2.110, Аноним (111), 20:57, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Удивительно как много людей пищущих на языках у которых "1" + 1 дает 11, а typeof NaN == "number" и подключающих кучу библиотек и фреймверков ради типовых операций считают себя программистами.

    По подключению библиотек согласен. Часто это очень избыточно.
    А вот то что в каждом языке есть правила приведения типов и неявное преобразование и свой набор операций,
    тут то что удивительного? Выучи и используй.

    Нужны были такие правила создателям языка для решения каких-то задач - так и сделали.
    Могли и приоритеты операций какие-то свои сделать

     

  • 1.30, Аноним (30), 19:16, 02/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А сколько фондов уже развелось, не пересчитать. Ждёмс когда начнутся битвы фондов.
     
  • 1.36, Аноним (36), 19:34, 02/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А ведь я говорил!
     
     
  • 2.112, Аноним (111), 21:06, 04/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что случилось? Почему перестал?
     

  • 1.43, Аноним (43), 20:15, 02/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да я уже про эти бэкдоры не первый день говорю. И только сейчас у них руки дошли, а сколько еще бэкдоров осталось...
     
  • 1.68, Шарп (ok), 23:33, 02/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Очередные подпорки вместо решения проблем. Репозиторий без мейнтейнеров всегда будет кишеть вирусами, троянами, кодом исследователей безопасности и прочей нечестью. И ничего ты с этим не сделаешь.

    Сколько репозиториев у дистрибутивов линукса? Море. А сколько проблем с вирусами в них? Я что-то не припомню.

     
  • 1.81, Аноним (-), 02:03, 03/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Парни, не ипитесь с жабаскриптерами, вам нечего в этой жизни делить.
     
  • 1.90, Ant (??), 10:38, 03/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вангую за ту же судьбу в Снэпах с Флэтпэками. Пакетная база без доказанного авторитета сообщества даёт кавардак: кто угодно приходил, никем не просмотренное оставил.
     
     
  • 2.98, Аноним (96), 20:22, 03/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В snap есть подтверждение аккаунта. Но например у jetbrain и Mozilla подтвержденный, а у telegram нет.
     

  • 1.97, Аноним (97), 17:19, 03/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Проверил сейчас с помощью timeit.timeit() на 3 питоне, что быстрее работает с одинаковой строкой: html.escape() из стандартной библиотеки или markupsafe.escape() который советуется в туториале по flask, который я читаю. Первый оказался стабильно быстрее.
     
  • 1.108, InuYasha (??), 11:11, 04/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не знаю, почему. но мне грустносмешно и я немножко смеюсь. )
     
  • 1.114, Алексий Козубовский (?), 12:38, 07/05/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Во имя Отца и Сына и Святаго Духа.
    Коллегам топящим за "все с нуля": Windows XP - 150 ТЫСЯЧ ЧЕЛОВЕКО-ЛЕТ работы.
    Иначе: если не объединяться то можно до гроба СВОЮ - самую "лучшую" best from the best, toppest, world elite best итд ДО ГРОБА кодить.
    Яндексите среднню продолжительность жизни и помните - молодость оканчивается а за не смерть и мытарства.
    Сколько можно за этими коробками сидеть -сходите что ли в спортзал, на парад, в храм -свечку поставьте.
    Очнитесь, коллеги -скоро 9 мая а о том что происходит в Малороссии вам надо рассказывать?
     
     
  • 2.115, Аноним (-), 17:04, 09/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    свечки это дело конечно при сидячем образе жизни. но лучше б ты топил за пожертвование кирюхиной какарды на красные флажки, тогда бы и народ подтянулся.
     
     
  • 3.116, Алексий (?), 15:40, 25/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Он - монах - все это в могилу не потянет.
    Темнейшему тоже советуешь продать мерс и ехать на запорожце?Это же просто смешно.
    Я сам работал свечником в монастыре - свечки делал.
    Хотел бы вылить грязи -вылил бы (знаю больше твоего намного -но из РПЦ не ушел и не уйду). На хорошее надо смотреть а не в чужом грязном белье ковыряться..
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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