The OpenNET Project / Index page

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

Сбой антиспам-системы привёл к коллапсу в репозитории NPM

12.01.2018 10:28

В репозитории NPM произошёл инцидент, напоминающий произошедшую в 2016 году историю с модулем left-pad, удаление которого привело к неработоспособности многих проектов из-за потери зависимости. На этот раз причиной проблем стала система автоматизированной борьбы со спамом, из-за которой по ошибке были удалены пользователь floatdrop и 102 разработанных им модуля.

Многие из заблокированных модулей пользовались популярностью и использовались в качестве зависимостей в других модулях и приложениях. Недоступность данных модулей привела к каскадному обрушению зависимостей и невозможности установить или обновить тысячи пакетов в NPM. Например, модуль require-from-string, содержащий всего 25 строк кода, насчитывает более 4.5 млн загрузок в месяц, а модуль timed-out (46 строк кода) более 7 млн загрузок в месяц.

Разбор причин ложного срабатывания антиспам-системы показал, что незадолго до инцидента один из спамеров разместил вредоносный модуль, в который для прикрытия скопировал файл README из легитимного пакета timed-out, принадлежащего пользователю floatdrop. Система распознала вредоносный модуль, но из-за совпадения файлов README посчитала пользователя floatdrop причастным к спаму. Отвечающий за разбор спама персонал халатно отнёсся к своим обязанностям и не разобравшись в сути предупреждения от антиспам-системы подтвердил блокировку учётной записи floatdrop и удалил все его модули из репозитория.

Проблема сразу дала о себе знать и персонал оперативно приступил к устранению неполадок. В течение трёх часов удалось полностью восстановить состояние репозитория. Примечательно, что быстрому восстановлению помешало то, что некоторые предприимчивые пользователи сразу зарегистрировали новые модули с теми же именами, что и удалённые (всего было размещено 11 дубликатов). Появление данных модулей потребовало дополнительного разбора и создало предпосылки для подозрений в попытках распространения вредоносного кода.

Для предотвращения подобных ситуаций в будущем была введена 24-часовая задержка републикации удалённых пакетов (для защиты от незаметного размещения вредоносных пакетов вместо удалённых), выработаны новые рекомендации и правила по реагированию на проблемы, улучшен инструментарий для борьбы со спамом и добавлены средства для оперативного восстановления ошибочно удалённых пакетов.

  1. Главная ссылка к новости (http://blog.npmjs.org/post/169...)
  2. OpenNews: Более половины npm-пакетов могли быть скомпрометированы из-за ненадёжных паролей доступа
  3. OpenNews: Уязвимость в Apache CouchDB, позволяющая совершить атаку на реестр пакетов NPM
  4. OpenNews: Применение тайпсквоттинга для распространения вредоносных модулей NPM, PyPI и Gems
  5. OpenNews: Незащищённость NPM к атакам по внедрению вредоносных модулей-червей
  6. OpenNews: Инцидент с захватом прав на NPM-модуль привёл к сбою в работе проектов, использующих NPM
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47891-npm
Ключевые слова: npm, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (83) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:54, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > напоминающий произошедшую в 2016 году историю с модулем left-pad

    Наконец то ходь кто-то спомнил про npm leftpad...

     
  • 1.2, Zenitur (ok), 10:57, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Подскажите живущему в 2005, какие интересные проги есть на node.js?
     
     
  • 2.15, Аноним (-), 11:35, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +7 +/
    http://left-pad.io/
     
  • 2.17, IB (?), 11:42, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    peerflix
     
  • 2.22, Аноним (-), 12:15, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/icefapper/offdroid
     
  • 2.26, Филимон Опрометчивый (?), 12:25, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +33 +/
    Чувак, покупай биткойны!
     
     
  • 3.37, Аноним (-), 14:06, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да. Верно!
     
  • 3.63, Дегенератор (?), 16:38, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Хоть один адекватный комментарий!
     
  • 3.69, ползкрокодил (?), 17:21, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У кого покупать? Майнить надо! А лучше выложить реализацию раньше Накамото.
     
  • 2.30, Аноним (-), 12:48, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +14 +/
    > Подскажите живущему в 2005, какие интересные проги есть на node.js?

    Чувак, прочитай это и сделай как я написал, обогатишься и прославишься:
    1. скоро (или уже) у вас появится браузер гуглохром. выковыряй их него потроха, ответственные за clients-side (js, css, html). на это уйдёт наверное несколько месяцев, но время у тебя есть. автоматизируй этот процесс, чтобы при выходе новой версии хрома не тратить на это много времени (так как версии клепаться со временем будут всё чаще).
    2. запакуй их в один архив с последней версией nodejs.
    3. назови это Electron, объяви это проектом для создания десктоп-приложений. сделай демку, какой-нибудь helloworld. Будет тормозить и жрать память как не в себя, но не переживай: в наше время все уже привыкли к тормозам и ничего не заметят, а памяти если что ещё докупят.
    4. сделай для него сайт. основными особенностями должны быть: на сайте должна быть только одна страница (главная), размер шрифта не меньше 18 (можешь просто сделать такой размер, чтобы было комфортно читать, потом нажать три раза Ctrl-+ и захардкодить в css получившийся размер).
    5. создай на гитхабе аккаунт electron, в нём - репозиторий electron (если будут заняты, используй electronjs). а чтобы защититься от киберсквоттеров, зарегай домен electron.org (если уже занят, подойдёт electroljs.org, также популярны домены в зоне io, можешь попробовать какой-нибудь electron.io).
    6. в начале 2013 года убирай с сайта robots.txt и готовься к наплыву посетителей и пользователей этой штуки.

    P.S. Должен предостеречь, что с самого начала технически подкованные люди будут тебя ненавидеть за это, так что решай сам, стоит ли оно того: стоит ли ненависть тысяч восхищения миллионов.

     
  • 2.34, anonymous_coprophagus (?), 13:28, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +30 +/
    Предупреди всех, чтобы не брали интел!
     
     
  • 3.57, Аноним (-), 15:53, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    ЫЫЫ!!! Коммент года! :D
     
     
  • 4.96, Аноним (-), 22:27, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    353 дня впереди - то ли ещё будет!
     
  • 2.60, Виталик (??), 16:26, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если речь про десктоп проги она всего 1 визуал студия код от майкрософт хейтер... большой текст свёрнут, показать
     
     
  • 3.62, arisu (ok), 16:38, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    визуал студия. хороший редактор. дальше можно не читать, всё равно чушь написана.
     
     
  • 4.64, Виталик (??), 16:41, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Речь не про их ИДЕ которой нет на линукс, а про https://github.com/Microsoft/vscode
     
     
  • 5.67, arisu (ok), 16:50, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    то есть, ты решил вообще себя зарыть. воистину: не надо мешать людям говорить, и они сами себя спустят под днище.
     
     
  • 6.79, Аноним (-), 19:12, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну там реально всего одна известная проблема, реализация мигания курсора потребляла 70% CPU, а в остальном — хороший редактор же.
     
     
  • 7.82, arisu (ok), 19:18, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ну там реально всего одна известная проблема

    …двигатель браузера под капотом.

     
  • 7.83, arisu (ok), 19:25, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    p.s.: когда мне надоел тот прискорбный катаклизм, который я наблюдаю в редакторах, я таки сделал себе свой. который жуёт sql-дамп на 200 мегабайт и полностью его расцвечивает за ~300 миллисекунд, сжирая при этом около 500 мб памяти. обновлённая версия, которая в процессе, будет делать это за примерно 500 миллисекунд, но жрать примерно 250 мб памяти, и будет полностью лишена проблемы фрагментации блоков. вот это -- хороший редактор.
     
     
  • 8.87, и полностью его расцвечивает (?), 20:00, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    , ты читать его собрался используй grep и не и и себе и другим моск ... текст свёрнут, показать
     
     
  • 9.88, arisu (ok), 20:05, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а вот это у нас поколение младое прорезалось думать не умеет, код делать не уме... текст свёрнут, показать
     
  • 8.89, Гроздь (?), 20:25, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    попробуй вкурить acme из plan9port - весчь https github com evbogdanov acme б... текст свёрнут, показать
     
     
  • 9.90, arisu (ok), 20:35, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    мне он идеологически не нравится ... текст свёрнут, показать
     
     
  • 10.91, Гроздь (?), 20:41, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    есть клоны с текстовым режимом и емаксовыми кейбиндингами ... текст свёрнут, показать
     
     
  • 11.92, arisu (ok), 20:46, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    но зачем это, если у меня уже есть свой редактор, который работает именно так, к... текст свёрнут, показать
     
     
  • 12.93, Гроздь (?), 20:55, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    потому что это довольно накладно однако, если тебя все устраивает, то меня и те... текст свёрнут, показать
     
     
  • 13.94, arisu (ok), 21:06, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    x2 5 памяти на файл, с полным кэшированием раскраски да нет, не накладно 821... текст свёрнут, показать
     
     
  • 14.99, Аноним (-), 00:03, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем тебе полностью читать файл в память Или у тебя такой большой экран, что ц... текст свёрнут, показать
     
     
  • 15.100, arisu (ok), 00:05, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    затем, что если я захочу медленный редактор, то я знаю, где скачать какое 8208 ... текст свёрнут, показать
     
     
  • 16.109, Аноним (-), 14:17, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Медленный, как vim ... текст свёрнут, показать
     
     
  • 17.110, arisu (ok), 14:56, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    это ты сейчас решил пошутить на тему скорости вима грешно убогих пинать как мо... текст свёрнут, показать
     
     
  • 18.115, Аноним (-), 20:52, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не угадал Вторая попытка ... текст свёрнут, показать
     
     
  • 19.116, arisu (ok), 20:54, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    а, ты не шутил, ты просто не видел быстрых редакторов ну, бывает не отчаивайся... текст свёрнут, показать
     
  • 15.102, XoRe (ok), 02:19, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ctrl F и слушаешь, как винт поскрипывает ... текст свёрнут, показать
     
     
  • 16.108, Аноним (-), 14:10, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы винт не поскрипывал, есть дисковый кеш ... текст свёрнут, показать
     
     
  • 17.111, arisu (ok), 14:57, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    как хорошо, что когда вы войдёте в полную силу 8212 я уже сдохну ... текст свёрнут, показать
     
  • 17.122, XoRe (ok), 18:18, 15/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если вы про кеш самого диска на X мб, то файл туда как попадет, так и выпадет е... текст свёрнут, показать
     
  • 7.112, Аноним (-), 16:50, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    так это надо тоже суметь ;)
     

  • 1.4, Аноним (-), 11:00, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    И никто в сообществе жепоскриптеров так и не подумал за всё это время плюнуть на криворуких даунов из npmjs.org? Это печально.
     
     
  • 2.7, A.Stahl (ok), 11:07, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Видимо удобство перевешивает периодические проблемы.
     
  • 2.9, Аноним (-), 11:08, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Криворукий скорее тот, кто вместо вставки 30 строк кода цепляет отдельный модуль. Самое интересное, жизнь таких модулей в несколько строк кипит https://github.com/floatdrop/require-from-string/releases, выходят новые версии и т.п. хотя в код изменения не вносятся,  а так сопутствующие файлы правят.
     
     
  • 3.13, mrd (??), 11:26, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Та страница показывает последний коммит, а не разницу между релизами.
    Вот например https://github.com/floatdrop/require-from-string/compare/v2.0.0...v2.0.1
     
  • 3.40, Аноним (-), 14:15, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да пофиг сколько там строчек кода. Плохо - что даже эти пару строчек кода никем не валидируются, да и подвержены поломке по вине пакетного менеджера.
     
  • 2.105, Аноним (-), 11:14, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > жепоскриптеров
    > подумал

    /0

     

  • 1.11, X4asd (ok), 11:19, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > была введена 24-часовая задержка републикации удалённых пакетов (для защиты от незаметного размещения вредоносных пакетов вместо удалённых)

    они там реально идиоты?

    почему 24 часа, а не скажем 365 дней?

     
     
  • 2.18, Аноним (-), 11:56, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >они там реально идиоты?

    с точки зрения обычного человека, идиоты. С точки зрения современного человека, альтернативные гении.

     
  • 2.39, Аноним (-), 14:10, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нужно блочить навсегда.
     
  • 2.42, Аноним (-), 14:23, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Меня больше интересует, почему этого не сделали два года назад.
     
     
  • 3.71, Аноним (-), 17:29, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    npm это сброище модулей для node.js, >>> ,js <<<
    собственно потому они и в этот раз сделали всего 24 часа, вместо вечной блокировки имени.
     
  • 2.113, Аноним (-), 16:51, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> была введена 24-часовая задержка републикации удалённых пакетов (для защиты от незаметного размещения вредоносных пакетов вместо удалённых)
    > они там реально идиоты?
    > почему 24 часа, а не скажем 365 дней?

    просто от них ничего не зависит ;) поэтому они должны страдать ;)

     

  • 1.12, Аноним (-), 11:21, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    При удалении gmail логин в системе деактивируется навсегда и никогда не будет свободным.
     
     
  • 2.80, Аноним (-), 19:15, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > При удалении gmail логин в системе деактивируется навсегда и никогда не будет
    > свободным.

    А номер телефона через полгода выдадут другому человеку.

     

  • 1.14, Аноним (-), 11:27, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    Полон опасностей NPM-мирок
     
     
  • 2.19, Аноним (-), 12:03, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    обиженные похапешники теперь будут совать это под каждой новостью о любом языке?
     
     
  • 3.27, анонимус (??), 12:31, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А похапешники тут при чем? У них с композером такого не происходит. И lock файлы там были с самого начала, а не с 5 версии, и название вендора в имени пакетов тоже, а не как в npm кто-то с вендором в префиксе, кто-то без.
     
     
  • 4.33, vitalif (ok), 13:21, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ...и композер нафек не нужен, т.к а) в пхп почти все и так встроено б) если такое количество зависимостей, как обычно в node проектах, засунуть в пхп, оно какнет.
     

  • 1.16, анон (?), 11:39, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    хех, недавно на медиуме была статья на эту тема, эпичное чтиво, рекомендую:

    https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-yo

     
     
  • 2.51, Crazy Alex (ok), 15:22, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    да, достойно
     
  • 2.114, Аноним (-), 17:52, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > хех, недавно на медиуме была статья на эту тема, эпичное чтиво, рекомендую:
    > https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-yo

    da zabavno :D


     
  • 2.118, User (??), 10:42, 14/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Перевод на хабре
    https://m.habrahabr.ru/company/ruvds/blog/346442/
     

  • 1.24, anomymous (?), 12:20, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ещё раз: бездумный депенденс на хипстерские репы - зло. Только статическая сборка, причём каждое обновление библиотек должно проходить ревью.
     
     
  • 2.25, anomymous (?), 12:21, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И regression testing, да.
     
     
  • 3.97, Michael Shigorin (ok), 23:27, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > И regression testing, да.

    Прочитал сперва как "aggression testing" -- задумался про defensive programming...

    Но вообще да, агрессия в виде халатности с правильным битиком (или сколько там у них занимает отметка о правах) -- это поди ж ещё предусмотри.

     
  • 2.28, RobotsCantPoop (?), 12:34, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ага, а потом начнут орать про бюрократию, "совок" и про то что "инноватора" ни за что завернули эти "закостенелые политруки".
     
  • 2.55, Аноним (-), 15:43, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сплю и вижу статически собранный дистрибутив ГНУ+Линукс с ревью и тестами на регрессии. И обновления системы потому, что в glibc пропатчили какой-то незначительный минорный баг, проявляющийся на архитектуре с 3,5 пользователей.

    Хейтеры такие хейтеры. Не нравится nodejs/C/Rust/мамка анона — не пользуйся, делов-то? Вот уж воистину, нет большего гадюшника, чем околоайтишный форум.

     
     
  • 3.65, amonymous (?), 16:44, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    RHEL так и собирается, а что? Да и почти любой бинарный дистр GNU/Linux. Под статической сборкой имеется в виду не статическая линковка, а именно что сборка проекта вместе с библиотеками, которая по желанию левой задней ноги третьих лиц не изменяется.
     
     
  • 4.75, Аноним (-), 18:05, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Начинаются манёвры. Под статической сборкой что-то внезапно понимается что-то совершенно не то, что принято понимать.

    RHEL является RHEL'ом потому, что там есть (достаточно) чёткий процесс, которого придерживаются при разработке. Но изначально код они берут в точно таких же публичных репозиториях, что и все. Ты же не думаешь, что они там свой собственный nodejs командой секретных клонов Поттеринга пишут?

    Как бы то ни было, ошибки случаются. Где-то чаще, где-то реже, но они неизбежны. Перефразируя Жеглова, качество сервиса определяется не отсутствием багов, а умением администрации их обезвреживать.

     
  • 3.98, Michael Shigorin (ok), 23:50, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Сплю и вижу статически собранный дистрибутив ГНУ+Линукс

    Ммм... была ведь такая попытка, какие-то детишки-слакваристы вроде с полотна "Утомлённые зависимостями".

     

  • 1.45, Аноним (-), 15:01, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Примечательно, что быстрому восстановлению помешало то, что некоторые предприимчивые пользователи сразу зарегистрировали новые модули с теми же именами

    надеюсь, имена этих "героев" известны и все они уже забанены просто так?

     
     
  • 2.56, Аноним (-), 15:47, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > надеюсь, имена этих "героев" известны и все они уже забанены просто так?

    Стоят в очереди на получение бана сразу после «тупых инженеров из Интела» и «тех дeбилов, которые в OpenSSL Heartbleed проморгали».

     
     
  • 3.123, Аноним (-), 09:47, 16/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сравнение неуместно. Joyent - коммерческая компания, на своём сайте кого хочет - того и банит. Почему бы ей просто так не захотеть забанить этих пакетосквоттеров?
     
  • 2.84, Аноним (-), 19:29, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > надеюсь, имена этих "героев" известны и все они уже забанены просто так?

    Да вас же, вэб-макак, всех не перебанишь. Тут только дустом можно попробовать справиться...

     
     
  • 3.119, Аноним (-), 12:28, 14/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    хорошо, что немакаки-хеловорлдщики только в комментах гядят, а то хана вообще всем инфраструктурам
     

  • 1.46, Аноним (-), 15:03, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >незадолго до инцидента один из спамеров разместил вредоносный модуль

    а вот в pipa почему-то такого нет. Потому что модерации нет совсем?

     
  • 1.49, name (??), 15:12, 12/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >персонал

    очень пафосное название для чувака сидящего дома с бутылкой пива в одной руке, и клавиатурой в другой :)

     
     
  • 2.95, копипастер (?), 22:26, 12/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > с бутылкой пива

    с кружкой смузи // fixed

     
  • 2.121, user455 (?), 16:29, 15/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    а какая разница в 21 веке где сидит сотрудник и что он держит в руке?
     

  • 1.101, smile (??), 01:04, 13/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    npm-экосистема конечно впечатляет своей убогостью, но заголовок не соответсвует, ведь

    > и не разобравшись в сути предупреждения от антиспам-системы подтвердил блокировку

    результат рукожопов, а не тупенького спам-фильтра, который, как никак, расстарался и предупредил.

     
  • 1.103, dasrfatwet (?), 03:40, 13/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не удивлюсь если уже существуют или в будущем появятся стартапы про безопасность npmjs репозиториев по типа как с докером было.
     
     
  • 2.104, dasrfatwet (?), 03:40, 13/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Естественно за деньги.
     
     
  • 3.120, Аноним (-), 04:52, 15/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И за деньги есть, и бесплатно, но с é́́блей. Артифактори, например. И множество других аналогов и более узкоспециализированных решений.
     

  • 1.124, fantom (??), 18:58, 16/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Народная мудрость последнего абзаца:

    Решительный шаг вперед есть результат хорошего пинка взад!

     

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



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

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