Я получаю ошибку E429
npm ci
(по крайней мере, с сегодняшнего дня)npm ci
возвращает ошибку E429 ( слишком много запросов ) и не завершает установку пакетовnpm ci
То же самое здесь, но с npm -g install @vue/cli
.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz
Такая же проблема на наших трубопроводах. Ответы варьируются от 403 Forbidden
до 420 Too Many Requests
Мы видим это в любой из наших задач CI, выполняемых в AWS.
Step 8/11 : RUN npm ci
---> Running in 87051ac87a51
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@types/xxhashjs/-/xxhashjs-0.2.1.tgz
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-02-17T11_49_35_151Z-debug.log
The command '/bin/sh -c npm ci' returned a non-zero code: 1
ERROR: Job failed: exit code 1
Также для меня по сборке из бамбука:
error 17-feb-2020 12:49:46 npm ERR! code E429
error 17-feb-2020 12:49:46 npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@snyk/configstore/-/configstore-3.2.0-rc1.tgz
Централизованная инфраструктура: ~ (
(жду вскрытия, но не затаив дыхание ...)
Было бы полезно иметь список (проверенных) публичных зеркал реестра. Я нашел несколько, но не могу им доверять.
То же самое, как локально, так и на Circle CI
Также вижу то же самое с использованием Circle CI и локально
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz
Я вижу такие ошибки, как ..
«Владелец этого веб-сайта (registry.npmjs.org) временно запретил вам доступ к этому веб-сайту»
и
«Ваша оценка ограничена»
Полагаю, это все связано?
У нас также возникает эта проблема при развертывании на Heroku.
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz
Имеются такие же ошибки при развертывании на героку.
то же самое здесь с AWS CodeBuild и npm i -g aws-cdk
28 | npm ERR! 429 Слишком много запросов - ПОЛУЧИТЕ https://registry.npmjs.org/aws-cdk
общая проблема с сервером?
У меня такая же проблема
npm ERR! код E429
npm ERR! 429 Слишком много запросов - ПОЛУЧИТЕ https://registry.npmjs.org/silent-error
То же самое и при локальной установке пакетов.
Швеция.
`` npm ERR! код E429
npm ERR! 429 Слишком много запросов - ПОЛУЧИТЕ https://registry.npmjs.org/lodash
Да, я тоже вижу это на Трэвисе за npm audit
:
npm ERR! audit Your configured registry (https://registry.npmjs.org/) may not support audit requests, or the audit endpoint may be temporarily unavailable.
npm ERR! audit The server said:
Access denied | registry.npmjs.org used Cloudflare to restrict access
You are being rate limited
The owner of this website (registry.npmjs.org) has banned you temporarily from accessing this website.
То же самое происходит и здесь. Получение ошибки при выполнении npm update
17-Feb-2020 11:47:48 npm ERR! code E429
17-Feb-2020 11:47:48 npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz
Здесь та же проблема. Мы используем бамбуковые ци. Собственная установка.
Файл доступен с самого сервера:
`` `$ wget https://registry.npmjs.org/@babel/plugin -transform-block-scoping / - / plugin-transform-block-scoping-7.8.3.tgz
--2020-02-17 11: 59: 28-- https://registry.npmjs.org/@babel/plugin -transform-block-scoping / - / plugin-transform-block-scoping-7.8.3.tgz
Разрешение registry.npmjs.org (registry.npmjs.org) ... 104.16.17.35, 104.16.24.35, 104.16.26.35, ...
Подключение к registry.npmjs.org (registry.npmjs.org) | 104.16.17.35 |: 443 ... подключено.
HTTP-запрос отправлен, ожидает ответа ... 200 ОК
Длина: 6735 (6,6 КБ) [приложение / октет-поток]
Сохранение в: 'plugin-transform-block-scoping-7.8.3.tgz'
plugin-transform-block-scoping-7.8.3.tgz 100% [================================== ================================================== ============================================>] 6,58 КБ - .-КБ / с в 0 с
2020-02-17 11:59:28 (95,5 МБ / с) - 'plugin-transform-block-scoping-7.8.3.tgz' сохранен [6735/6735] ««
Столкнувшись с этой проблемой, это глобальная проблема или, может быть, регион? В прошлом году у нас было нечто подобное в Германии.
То же самое и на Gitlab CI
То же и здесь, в Нидерландах. (AWS Codebuild из Ирландии)
России в
Стамбул здесь
Похоже, это проблема, связанная с Cloudflare, на сайте registry.npmjs.org.
получил следующий html-ответ при обновлении:
<!DOCTYPE html>
npm ERR! <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
npm ERR! <!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
npm ERR! <head>
npm ERR! <title>Access denied | registry.npmjs.org used Cloudflare to restrict access</title>
npm ERR! <meta charset="UTF-8" />
npm ERR! <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
npm ERR! <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
npm ERR! <meta name="robots" content="noindex, nofollow" />
npm ERR! <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
npm ERR! <link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" type="text/css" media="screen,projection" />
npm ERR! <!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" type="text/css" media="screen,projection" /><![endif]-->
npm ERR! <style type="text/css">body{margin:0;padding:0}</style>
npm ERR!
npm ERR!
npm ERR! <!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/zepto.min.js"></script><!--<![endif]-->
npm ERR! <!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/cf.common.js"></script><!--<![endif]-->
npm ERR!
npm ERR!
npm ERR!
npm ERR! </head>
npm ERR! <body>
npm ERR! <div id="cf-wrapper">
npm ERR! <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
npm ERR! <div id="cf-error-details" class="cf-error-details-wrapper">
npm ERR! <div class="cf-wrapper cf-header cf-error-overview">
npm ERR! <h1>
npm ERR! <span class="cf-error-type" data-translate="error">Error</span>
npm ERR! <span class="cf-error-code">1015</span>
npm ERR! <small class="heading-ray-id">Ray ID: REDACTED • 2020-02-17 11:26:27 UTC</small>
npm ERR! </h1>
npm ERR! <h2 class="cf-subheadline">You are being rate limited</h2>
npm ERR! </div><!-- /.header -->
npm ERR!
npm ERR! <section></section><!-- spacer -->
npm ERR!
npm ERR! <div class="cf-section cf-wrapper">
npm ERR! <div class="cf-columns two">
npm ERR! <div class="cf-column">
npm ERR! <h2 data-translate="what_happened">What happened?</h2>
npm ERR! <p>The owner of this website (registry.npmjs.org) has banned you temporarily from accessing this website.</p>
npm ERR! </div>
npm ERR!
npm ERR!
npm ERR! </div>
npm ERR! </div><!-- /.section -->
npm ERR!
npm ERR! <div class="cf-error-footer cf-wrapper">
npm ERR! <p>
npm ERR! <span class="cf-footer-item">Cloudflare Ray ID: <strong>REDACTED</strong></span>
npm ERR! <span class="cf-footer-separator">•</span>
npm ERR! <span class="cf-footer-item"><span>Your IP</span>: REDACTED</span>
npm ERR! <span class="cf-footer-separator">•</span>
npm ERR! <span class="cf-footer-item"><span>Performance & security by</span> <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=error_footer" id="brand_link" target="_blank">Cloudflare</a></span>
npm ERR!
npm ERR! </p>
npm ERR! </div><!-- /.error-footer -->
npm ERR!
npm ERR!
npm ERR! </div><!-- /#cf-error-details -->
npm ERR! </div><!-- /#cf-wrapper -->
npm ERR!
npm ERR! <script type="text/javascript">
npm ERR! window._cf_translation = {};
npm ERR!
npm ERR!
npm ERR! </script>
npm ERR!
npm ERR! </body>
npm ERR! </html>
Та же проблема возникает с AWS Codebuild us-east-1. Был сломан локально около 30 минут назад, но теперь работает (локально из Ирландии)
Похоже, это проблема, связанная с Cloudflare, на сайте registry.npmjs.org.
Есть ли зеркало, не использующее облачную вспышку?
Та же проблема! Сборка конвейеров терпит неудачу :(
То же: npm ERR! code E429
Вот и все. Интернет сделан. Всем пока.
Я собираюсь пообедать и надеюсь, что это будет исправлено, когда я вернусь менее чем через час.
Мы можем в значительной степени подтвердить, что это проблема npm, но на их странице состояния все указано как работоспособное. Какова тогда цель страницы статуса npm?
Та же проблема. AWS от us-east-1
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/archy/-/archy-1.0.0.tgz
Просто написал в твиттере 🤞, что мы оперативно получим информацию.
Одна и та же...
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.0.tgz
одна и та же. Различные пакеты, но продолжает получать 429 слишком много запросов, выполняющих npm install и npm ci, поскольку ранее
:(
Мы все опустились с утра. NPM нарушен. Дублин здесь
У меня теперь работает нормально. 5 $ / упаковка. PM мне.
У меня теперь работает нормально. 5 $ / упаковка. PM мне.
так дешево
В Южной Корее я тоже столкнулся с этой проблемой.
$ npm install --save-dev typescript
npm ERR! code E429
npm ERR! 429 Too Many Requests: [email protected]
Установка каждого пакета NPM занимает слишком много времени.
Что случилось с НПМ?
К счастью, нам просто нужно сидеть и ждать
Представьте, если бы мы все были строителями, и вдруг во всем мире перестали работать все молоты: думаю:
Как насчет использования зеркала yarnpkg для ваших сборок?
Все в порядке http://status.npmjs.org/
Все в порядке http://status.npmjs.org/
Действительно 😄
Это обсуждение не выдержало
Вы можете использовать: https://github.com/open-services/open-registry
# npm
npm config set registry https://npm.open-registry.dev
# yarn
yarn config set registry https://npm.open-registry.dev
Такая же проблема в нескольких средах (travis, local, server).
NPM: почти идеальное зеркало
NPM: не работает по понедельникам
NPM: Понедельник без проблем
Та же проблема в бегунах Gitlab
Та же проблема при попытке сборки в heroku. CF-код ошибки 1015.
Владелец этого веб-сайта (registry.npmjs.org) временно запретил вам доступ к этому веб-сайту.
Я также получаю эту ошибку, когда выполняю команду npm install: « Доступ запрещен | registry.npmjs.org использовал Cloudflare для ограничения доступа. Ваш рейтинг ограничен. Владелец этого веб-сайта (registry.npmjs.org) временно заблокировал вас от доступа к этому сайту. ".
Я из Себу, Филиппины. Это проблема CloudFlare или NPM?
Владелец этого сайта (registry.npmjs.org) временно запретил вам доступ к этому сайту.
Привет, ребята, как бы весело это ни было, пожалуйста, позвольте нам ограничить это действительно полезными вещами, чтобы люди могли снова начать работать.
Похоже, что эта проблема довольно распространена, а не все, кто пишет «это происходит со мной в X», как насчет того, чтобы мы поторопились, пока не услышим что-нибудь от NPM? Или мы можем добавить +1 к комментарию, если это коснется.
NPM: не менеджер пакетов
У нас в Швеции тоже бывают отключения электричества 🙆♂
Похоже, что эта проблема довольно распространена, а не все, кто пишет «это происходит со мной в X», как насчет того, чтобы мы поторопились, пока не услышим что-нибудь от NPM? Или мы можем добавить +1 к комментарию, если это коснется.
Нет, мемы и бесполезные комментарии для победы
Такая же проблема при сборке AWS
Значит ли это, что мы можем уйти на второй обед?
Имея ту же проблему на CircleCi Builds
Такая же проблема с Github Actions!
Пора устанавливать https://github.com/verdaccio/verdaccio/
Вау, мемы в комментариях XD
Ребята, здорово быть в одной лодке и делиться любовью, пока мы в стрессе, но ... можем ли мы перестать говорить друг другу «я тоже»?
Мемы всегда приветствуются, кстати!
Это следствие чрезмерной зависимости от чужого компьютера . @phaberest ты бессмысленный, и я тоже: -}
одна и та же!
НПМ только что сказал мне, что мы можем взять выходной, спасибо, ребята.
Такая же проблема здесь
Это все еще применимо?
Одна и та же
Штаб-квартира Npm сейчас:
Я предполагаю, что сейчас офис npmjs #npm pic.twitter.com/wZy0Bo3PM8
- Ник Хаммонд (@thehappypenguin) 17 февраля 2020 г.
Проблема теперь исправлена
https://status.npmjs.org/ пока зеленый 💃
НПМ:
Слухи говорят, что пакеты NPM были заражены коронавирусом
Я думаю, что это хороший пример, почему настоятельно рекомендуется установить собственный реестр / прокси-сервер npm для защиты от подобных проблем, когда вы не можете развернуть свое приложение из-за сбоя реестра NPM.
Когда вы ждете, пока NPM будет доступен
НПМ хочет, чтобы мы сделали перерыв
Написание «то же самое» - низкий рейтинг.
То же самое здесь на Casio FX-991ESPLUS
НПМ: Теперь отправляйте мемы!
То же из Китая.
Та же проблема при запуске npm install на нашем сервере сборки (Teamcity) и локально.
Я начинаю курс Python прямо сейчас.
Что мне нравится в этом, так это то, что эта проблема на самом деле не мешает мне работать. Однако люди, выкладывающие здесь мемы, останавливают меня. Я люблю это: D
Я люблю шоколадное молоко
Связанная тема .. https://github.com/nextcloud/maps/issues/300
Поскольку мне лень, я буду связывать свой пост оттуда .. https://github.com/nextcloud/maps/issues/300#issuecomment -586973011
да, я могу npm ci
NPM: нет сопряжения пакетов
Я сейчас на встрече с клиентами и не могу продемонстрировать: [
Я сейчас на встрече с клиентами и не могу продемонстрировать: [
ооочень. вы демонстрируете своим клиентам npm install
?
У меня такая же проблема
В понедельник в Индии тоже нет трубопровода 💃
Боже мой, пожалуйста, поделитесь папкой node_modules
, кто угодно!
тут то же самое
«Все системы работают» - самая большая ложь
Нестабильно, но не улучшается?
NPM: никогда не нажимайте макеты
@ anant-k-singh да, мемы, где ты был? ;-) много прокрутки большого пальца сейчас во фронтенд-сообществе, верно.
... и где этот прокси-сервер npm с локальным / локальным кешированием, когда он вам нужен?
https://status.npmjs.org/ очень полезен ...
Кто-то должен просто загрузить папку angularjs node_modules на диск Google, ради всего святого
Я сейчас на встрече с клиентами и не могу продемонстрировать: [
FeelsBadMan, настолько плохая "сила демки", что затрагивается весь мир ..
Обновили страницу статуса.
npm WARN устаревший request@2.88.2 : запрос устарел, см. https://github.com/request/request/issues/3142
npm ERR! код E429
npm ERR! 429 Слишком много запросов - ПОЛУЧИТЬ https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.5.tgz
npm ERR! Полный журнал этого запуска можно найти в:
npm ERR! C: \ Users \ Lenovo \ AppData \ Roamingnpm-cache_logs \ 2020-02-17T12_50_04_887Z-debug.log
Я здесь только ради мемов
Привет всем, можем ли мы хранить мемы и шутки в соответствующих каналах Slack / Discord / IRC, а не в этой проблеме с GitHub? Им известно об этой проблеме, и они обновили StatusPage.
npm ERR! код E429. Вот!
«Все системы работают» - самая большая ложь
jq -r '.dependencies * .devDependencies | keys[]' package.json | xargs -L 1 -I {} sh -c "echo installing {}; npm i {}; sleep 10"
Кажется, это сработает, если вы не установите все свои пакеты сразу ... Это сработает, если вы в отчаянии, но довольно медленно ...
403/429 Erros для некоторых пользователей
Как насчет всех?
Привет, есть ли обновления по этому поводу?
E429
тоже здесь (Нидерланды)
Сборка на локальном компьютере, инициированная Azure DevOps.
Наконец он заработал (страница статуса 💃)
вниз с полутора часов. надеюсь, мы скоро найдем исправление
Временное исправление работает для меня, откройте package-lock.json
Найдите https://registry.npmjs.org
и замените на https://registry.npmjs.com
Запустить npm ci
Приятно знать, что я не одинок
"получено некоторыми пользователями", - сказали они
То же и здесь, на Марсе.
вся надежда потеряна
Что было бы с миром, если бы npm остановился навсегда, это немного мыслит
Эта проблема заставила меня попробовать пряжу ... вообще-то впервые. Работает как оберег!
Это событие предсказал мой астролог.
Я сейчас на встрече с клиентами и не могу продемонстрировать: [
ооочень. вы демонстрируете своим клиентам
npm install
?
Не принес свой ноутбук, мой коллега сказал, что может просто принести его.
Teamviewer работает хотя ...
Когда мемы загружаются быстрее, чем NPM
Привет, команда npm
Не могли бы вы перезагрузить компьютер?
С уважением
Пришел из-за вопроса, остался ради мемов
Пожалуйста, будьте вежливы и не размещайте в этой теме ничего, кроме мемов. Спасибо.
Это работает
npm install наконец-то сработал для меня
У меня есть каталог Angular9 node_modules на продажу. Напишите мне свои предложения
Оно живое!
@npm
Ах, даун ненадолго, мемленда больше нет :(
Это я репортаж в прямом эфире с фронта npm. Похоже, он снова работает!
Ура
Временное исправление работает для меня, откройте package-lock.json
Найдитеhttps://registry.npmjs.org
и замените наhttps://registry.npmjs.com
Запуститьnpm ci
Спасибо. Меня устраивает.
Ура, это начало работать
О нет ... мои почтовые уведомления !! 🌊
за работой!
Ладно, ребята, это было весело. Увидимся в следующий раз
Временное исправление работает для меня, откройте package-lock.json
Найдитеhttps://registry.npmjs.org
и замените наhttps://registry.npmjs.com
Запуститьnpm ci
работал на меня
Похоже, название проблемы изменится с « Слишком много запросов » на « Слишком много комментариев ».
это уже самая комментируемая проблема в списке
(когда проблема с github обновляется быстрее, чем страница состояния npm)
работает и для меня
Вы пробовали rm -rf node_modules/ package-lock.json && npm install
?
ждем голосов против
https://github.com/npm/cli/issues/836#issuecomment -586973004
Вы можете использовать: https://github.com/open-services/open-registry# npm npm config set registry https://npm.open-registry.dev # yarn yarn config set registry https://npm.open-registry.dev
Почему все отрицательные голоса за open-registry
?
Или попробуйте npm config set registry https://registry.npm.taobao.org
Это было весело
node_modules для продажи. пишите мне на хорошие предложения: D
Вы пробовали
rm -rf node_modules/ package-lock.json && npm install
?
429 Слишком много голосов против
Удачи в NPMing.
Моя реакция, когда НПМ просит прекратить отправку мемов
Вы пытались перезагрузить компьютер, возможно ошибка исчезнет. Потому что это помогло мне.
Моя сборка снова заработала! Думаю, они выключили и наконец включили
Хьюстон, здесь работает.
теперь работает и для меня
node_modules для продажи. пишите мне на хорошие предложения: D
Наверное, худшее, что можно написать в сообществе open source 😋
ну вроде починили. работает в сингапурском регионе AWS
Работает сейчас!
сейчас работает Северная Вирджиния, регион AWS
Сейчас работаю - Зона 51 👽
Теперь это работает. Спасибо команде поддержки NPM. Сана все <3
Увидимся позже по другому вопросу, интернет-люди
Господа, было приятно!
закрыть, может быть?
Снова онлайн в Болгарии. Спасибо, ребята!
мы можем сделать это снова?
меня зовут Джефф
CI запущен и работает ... теперь приступим к работе ... это было честью
Этот сбой помог мне оптимизировать мой Dockerfile, без шуток.
Спасибо, что держались за руки.
пожалуйста, заблокируйте эту проблему, я не могу вернуть никого к работе, включая себя
Великобритания здесь. столкнулся с проблемой 429 при установке next.js, но реагировать и реагировать было нормально. Все в порядке, кажется
Привет, команда npm
Не могли бы вы перезагрузить компьютер?
С уважением
Наконец-то они это сделали !!! 3 раза...
Работаем сейчас в Швеции 🇸🇪!
Увидимся в следующий раз, когда NPM будет недоступен!
По крайней мере, github кажется очень доступным
GitHub пытается обновить ответы смайликов в реальном времени, и это похоже на фейерверк смайликов.
Следующая проблема: GitHub не работает: D
Причина: слишком много запросов в ошибке NPM # 837 836
Success! created app at C:/XXXX
«Мониторинг - наш партнер по доставке контента сообщил нам, что они внедрили исправление. Мы отслеживаем».
Проблема с Cloudflare?
Гранд-Рапидс, штат Мичиган, здесь
Это мой первый комментарий на Github, вызвавший столько реакций - люблю вас всех ❤️Скоро увидимся
РЕДАКТИРОВАТЬ: так много голосов против * продолжайте! вниз я имею в виду ..
Ральф сломал интернет!
Просто хочу быть частью этого. Хорошая работа, НПМ 👍
Итак, теперь мы все делаем мемы?
Наконец-то он работает !!!
(https://user-images.githubusercontent.com/57898245/74657035-b1009500-518f-11ea-9e95-290b51db7dbb.png)
Похоже, сейчас исправлено.
Пожалуйста, заблокируйте его, я не могу заставить кого-либо вернуться к работе, включая себя
нет
Проблемы NPM, объединяющие людей :)
Поскольку у меня все ваше внимание, могу ли я заинтересовать вас моей последней финансовой пирамидой?
Сейчас в Чехии все хорошо :) Спасибо команде NPM
NPM с использованием FORCE
Хорошо и в Иране, забавный вопрос!
штаб-квартира npm будет прямо сейчас
Пусть мемы сила пребудет с тобой
🇵🇹
смешно
мои пакеты не удалось установить!
о боже, я опоздал на вечеринку, теперь работает.
Спасибо, интернет!
консоль изменена на npm: 100:
эй, я здесь, чтобы сообщить об ошибке ...
▲
▲ ▲
PSHH PSHH YOBA MI V EFIRE!!1 🚣♂️
Все на борт мем-поезда! 🚂
Размещение мемов / шуток в выпуске тратит время людей, которым действительно необходимо уметь прочитать выпуск.
Прекрати. Если чувствуете необходимость, используйте смайлики.
Нам нужно больше этих ошибок, особенно в понедельник.
@cmcarey , улыбаться и смеяться никогда не плохо, это никогда не зря тратит время, на самом деле это улучшит вашу производительность, мемы и шутки делают нас людьми, а не просто рабочими машинами, даже Детройт стал человеком!
Привет из той же ГАЛАРЕТКИ !!
привет из интернета!
По крайней мере, скоро он может стать самым обсуждаемым вопросом.
Предложение: создайте запись для «Службы CDN» на странице статуса npm, так как кажется, что реальная проблема связана с Cloudflare
https://github.com/npm/cli/issues/836#issuecomment -586992790
@cmcarey , улыбаться и смеяться никогда не плохо, это никогда не зря тратит время, на самом деле это улучшит вашу производительность, мемы и шутки делают нас людьми, а не просто рабочими машинами, даже Детройт стал человеком!
Сейчас не время и не место для этого. Поток комментариев, который мы видим здесь, усложняет работу по сортировке, чтобы найти детали, которые могут помочь людям, которые действительно могут решить проблему.
Сейчас работаю в Бразилии: brazil :!
Андре из службы безопасности npm здесь. Наш партнер по доставке контента сообщил нам, что они внедрили исправление. и мы продолжаем следить за ситуацией. Вы можете найти более подробную информацию на нашей странице статуса: https://status.npmjs.org/.
Закрытие проблемы, но если у вас возникли проблемы, напишите на support@npmjs.com
@aeleuterio Есть ли шанс, что мы сможем провести вскрытие?
Работает в настоящее время!
О, МОЙ БОГ. Не делай этого снова! Когда-либо! )))))
Опять не работает. Думаю, ваши партнеры не исправили проблему.
@cmcarey , улыбаться и смеяться никогда не плохо, это никогда не зря тратит время, на самом деле это улучшит вашу производительность, мемы и шутки делают нас людьми, а не просто рабочими машинами, даже Детройт стал человеком!
Тем не менее, мемы и шутки заглушают разговор, который может иметь жизненно важное значение для решения какой бы то ни было проблемы.
Работаем сейчас 😓
Тем не менее, мемы и шутки заглушают разговор, который может иметь жизненно важное значение для решения какой бы то ни было проблемы.
Действительно, мне пришлось пролистать около 200 мемов, чтобы увидеть актуальное обновление статуса от NPM.
Просто для вашей информации: yarn смогла загрузить пакеты без срабатывания ограничения скорости: 1)
пряжа отличная! (и безопасно)
Привет и обильные извинения от Cloudflare, своего рода вскрытие прямо в комментариях к вашей проблеме.
Я технический менеджер группы защиты от DDoS-атак, и сегодня утром в 11:06 UTC мы изменили правило, которое повлияло на один из наших сигналов. Сигнал относится к заголовку реферера HTTP, и у нас есть фрагмент кода, который проверяет недопустимые заголовки реферера. В данном случае мы настроили его, чтобы включить не просто «очевидный мусор», но «все, что не соответствует спецификации HTTP» ... т.е. является ли референт URI? Если нет, то это способствует осведомленности о плохом трафике.
Итак ... почему это повлияло на npmjs.org? Оказывается, много трафика NPM отправляет рефереру как «установить», что недопустимо в соответствии со спецификацией HTTP. Поскольку NPM также является сайтом с интенсивным трафиком, это привело к тому, что системы DDoS перехватили это и обработали трафик как HTTP-флуд и определили, что следует применить ограничение скорости.
Когда мы заметили, что в NPM наблюдается рост числа HTTP 429 (как видно из Twitter), мы связались с NPM и начали внутреннее расследование. Как только мы определили основную причину, мы отменили изменение, которое произошло в 13:00 UTC.
Отметим, что NPM и еще 1 сайт используют реферер для целей, выходящих за рамки спецификации HTTP, и мы обновим наши системы, чтобы этого больше не повторилось. Кроме того, мы улучшим наш мониторинг изменений подобного рода, чтобы мы могли быстрее обнаруживать последствия и автоматически откатываться.
Спасибо за объяснение @ buro9
Надеюсь, у вас будет несколько явных тестов для NPM, учитывая важность для сообщества разработчиков.
Мы (и я уверен, что многие другие) не смогли развернуть ряд проектов за 2 часа сегодня утром в рабочие часы ЕС. Это также должно служить напоминанием для всех нас о необходимости принятия более эффективных мер по обеспечению непрерывности на тот момент, когда эти события произойдут.
На мой взгляд, было бы лучше убедиться, что запросы от установщика NPM соответствуют спецификации HTTP.
На мой взгляд, было бы лучше убедиться, что запросы от установщика NPM соответствуют спецификации HTTP.
Referer должен быть пустым, установщик должен быть пользовательским агентом
Спасибо, я снова могу загружать все свои 5464950 зависимости каждые 15 минут для следующей сборки.
@ buro9, мы будем признательны, если вы ответите на наши
Что касается указания на спецификации HTTP, учитывая, что такое поведение существует в течение многих лет, я бы попросил просмотреть, какое изменение было внесено в CF сегодня, что привело к такому внезапному результату "соответствия спецификации HTTP"?
Я попрошу еще раз, пожалуйста, просмотрите наши открытые тикеты и доложите нам о вскрытии последних двух сбоев, мы лучше узнаем об этом напрямую от вас, чем увидим это в выпуске на github. .
Привет и извинения от Cloudflare,
Я не думаю, что тебе нужно извиняться. npm явно испортил поле реферера, и вы не сделали ничего плохого. То, что это случайно сработало в прошлом, не означает, что так и должно оставаться. Кто может гарантировать, что подобное не повторится в будущем, если кто-то соблюдает спецификацию?
npm явно испортил поле реферера, и вы не сделали ничего плохого. То, что это случайно сработало в прошлом, не означает, что так и должно оставаться.
Это называется разрывами BC и не должно происходить в одной и той же «версии».
npm явно испортил поле реферера, и вы не сделали ничего плохого. То, что это случайно сработало в прошлом, не означает, что так и должно оставаться.
Это называется разрывами BC и не должно происходить в одной и той же «версии».
Да, я даю вам эту точку зрения. Но, надеюсь, решение не будет таким: «так будет всегда, и все должны подчиняться».
(…)
мы изменили правило, влияющее на один из наших сигналов. Сигнал относится к заголовку реферера HTTP, и у нас есть фрагмент кода, который проверяет недопустимые заголовки реферера.
(…)
Итак ... почему это повлияло на npmjs.org? Оказывается, много трафика NPM отправляет рефереру как «установить», что недопустимо в соответствии со спецификацией HTTP.
Разве заголовок Referer
разрешает использование относительных / частичных URI? https://tools.ietf.org/html/rfc7231#section -5.5.2
5.5.2. Referer The "Referer" [sic] header field allows the user agent to specify a URI reference for the resource from which the target URI was obtained (i.e., the "referrer", though the field name is misspelled). A user agent MUST NOT include the fragment and userinfo components of the URI reference [RFC3986], if any, when generating the Referer field value. Referer = absolute-URI / partial-URI
Не проверяя сервер на предмет наличия URI, как отличить произвольный URL-кодированный текст от фактического частичного URI?
Если я буду следовать выводам спецификации, тогда Referer
header install
на первый взгляд может быть совершенно верным:
https://tools.ietf.org/html/rfc7230#section -2.7
relative-part = <relative-part, see [RFC3986], Section 4.2> partial-URI = relative-part [ "?" query ]
https://tools.ietf.org/html/rfc3986#section -4.2
relative-ref = relative-part [ "?" query ] [ "#" fragment ] relative-part = "//" authority path-abempty / path-absolute / path-noscheme / path-empty
https://tools.ietf.org/html/rfc3986#section -3.3
path-noscheme = segment-nz-nc *( "/" segment ) segment = *pchar segment-nz = 1*pchar segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" ) ; non-zero-length segment without any colon ":" pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
Так что, если я не ошибаюсь в понимании спецификации, я должен задаться вопросом: какого черта этот заголовок реферера считается недействительным? Проверяет ли Cloudflare наличие этого URI по запросу (а затем кеширует его), или это снова беспорядочная «охота»?
@datenwolf синтаксически должно быть возможно иметь частичный URI, например install
, но как насчет этого, несколькими строками ниже вашего цитируемого текста:
If the target URI was obtained from a source that does not have its
own URI [...], the user agent MUST either exclude the
Referer field or send it with a value of "about:blank".
Это imho применяется здесь.
Однако это не ответ на ваш последний вопрос. Но кажется, что тема немного сложнее и разбита на две части: 1) соответствует ли npm спецификации http и 2) использует ли CF надежные правила обнаружения. И, может быть, просто возможно, ответ на оба вопроса: нет. Но я оставляю это обсуждать другим. Я просто хотел указать, что преждевременные извинения за «что-то» могут оставить потенциальные ошибки нефиксированными, поэтому формулировка могла быть немного неудачной по отношению к настоящему «решению» проблемы - каким бы оно ни было.
Вместо реализации block mode
в самый первый день, он должен был какое-то время находиться в observe mode
.
@datenwolf синтаксически должно быть возможно иметь частичный URI, такой как «установка», но как насчет этого, несколькими строками ниже вашего цитируемого текста:
If the target URI was obtained from a source that does not have its own URI [...], the user agent MUST either exclude the Referer field or send it with a value of "about:blank".
Это imho применяется здесь.
Да, это так. Может быть, я недостаточно ясно дал понять, что полностью осознаю это. Но это совсем не главное.
Как вы уже отметили
(…) Кажется, что тема немного сложнее и делится на две части: 1) соответствует ли npm спецификации http и 2) использует ли CF надежные правила обнаружения. (…)
и я уже указывал, что без явной проверки существования Referer
URI, достоверность заголовка невозможно определить.
Нарушает ли npm спецификацию? Конечно.
Может ли CF правильно это определить? Только путем явной проверки URI. Выполняет ли CF эту проверку? Я не знаю… пока (но я мог бы создать испытательный полигон только для этого).
Однако без дополнительной информации я просто должен предположить, что CF снова поступил так же, как CF, и по необоснованным причинам сломал часть Интернета ... еще раз.
При этом стоит иметь в виду, что CDN мало что может сделать, чтобы существенно улучшить их обслуживание и что не несет в себе риска «сломать часть Интернета». Характер услуги, которую предоставляет CF, и их заслуженная популярность как услуги, предоставляющей эту услугу, означает, что они, по сути, всегда играют с огнем и, вероятно, расстроят довольно много людей, когда они сделают это простительно и с благими намерениями. ошибки.
Я уже довольно давно занимаюсь этим npm, и у меня нет недостатка в сочувствии к их позиции, и я считаю, что неуместно высмеивать их за это. Они отлично справляются со своей задачей, защищая npm (и, следовательно, все сообщество JS) от множества злоумышленников и сбоев, и делают все наши сборки намного быстрее и надежнее. Мы любим и ценим Cloudflare. Так что давайте будем здесь добрыми.
При этом я считаю, что npm не нарушает ни букву, ни дух соответствующих спецификаций HTTP при использовании заголовка Referer для указания команды, которая вызвала выполнение данного запроса. Я надеюсь, что любой, кто следит за этим обсуждением, найдет следующий поток HTTP-педантизма полезным или, по крайней мере, приятным. Если это не для вас, пожалуйста, займитесь чем-нибудь другим, вам будет нехорошо читать это :)
CF внедрил изменение, которое рассматривает необычное использование заголовков HTTP как эвристику, чтобы пометить как злонамеренный запрос. При работе в основном с трафиком из веб-браузеров заголовок Referer, как правило, всегда будет отсутствовать, about:blank
или полностью квалифицированный URL. Заголовок вроде Referer: install
выглядит странно.
Однако: в спецификации написано «URI». Здесь не написано «URL». Это, конечно, не говорит «Полный URL». Учитывая типично скрупулезное использование «URI» и «URL» в документации IETF, головокружительные дискуссии, которые часто возникают по таким вопросам, и тот факт, что Referer впервые появился в rfc1945 (хотя он использовался задолго до этого), _и_ что спецификации HTTP сохранили "URI" через несколько раундов обновлений и исправлений, я должен сделать вывод, что _intent_ здесь для Referer должен быть URI, а не должен быть URL как таковым, а также буквой спец.
URI и URL - это не одно и то же. Оба связанных RFC были обновлены и устарели (частично) с момента их появления в последующих RFC, и я настоятельно рекомендую всем, кто все еще читает этот момент, перейти по ссылкам и узнать о том, как стандарты Uniform Resource Location и Identification изменились и расширились в тонких и интересные способы на протяжении многих лет.
Суть в следующем: заголовок HTTP Referer
не обязательно должен быть Uniform Resource _Locator_, а скорее Uniform Resource _Identifier_. Не требуется, чтобы для этого идентификатора использовалась хорошо известная схема URI или чтобы он был полной формой, а не относительной. Единственное ограничение, наложенное на него, состоит в том, что (а) это должен быть URI и (б) если запрос удовлетворяет прямой запрос пользователя, не имеющий какого-либо идентификатора, например, ввод URL-адреса в адресную строку, тогда это _должно_ быть опущено.
URI явно _не_ необязательно, чтобы его можно было найти, получить или разрешить каким-либо данным сетевым агентом или по любому заданному протоколу.
Итак, install
- это идентификатор того, с чем пользователь взаимодействовал, что вызвало запрос. Они не вводили URL-адрес пакета или tarball в адресную строку, они набирали npm install
, а _it_, в свою очередь, извлекали ресурс через HTTPS. Чтобы разрешить этот ресурс, он должен был сделать несколько HTTP-запросов. Схема отсутствует, но и не требуется. «установить» - это компактная серия символов, обозначающая ресурс. Это не содержащий схемы (т. Е. Не полностью уточненный) URI.
Поскольку семантика и синтаксис URI определяются их схемой, в отсутствие схемы невозможно сказать, что install
недействителен. Например, tel:+12345678901
- действительный URI (и действительный URL-адрес), а http:+12345678901
- нет. Чтобы узнать, является ли +12345678901
действительным частичным URI, вам нужно знать схему. Его местонахождение будет зависеть от характеристик телефонных систем северо-востока Огайо, США. Если телефонный звонок в автоматизированную систему по этому номеру инициировал отправку HTTP-запроса, было бы вполне уместно, чтобы этот HTTP-запрос включил заголовок Referer +12345678901
. Если сервер ожидает получить запросы от такой телефонной системы, он может вывести схему на основе контекста.
Именно это происходит с клиентом npm и реестром npm. Он отправляет заголовок Referer, содержащий выполняемую команду. (Когда команда содержит позиционные аргументы, все, что содержит /
или \
, удаляется, поскольку это может быть частный путь, URL-адрес или репозиторий git.) Это семантически и синтаксически правильное и подходящее использование заголовка HTTP Referer в контексте, отличном от браузера, и я искренне верю, что после 30 лет пересмотра, анализа и проверки со стороны IETF с помощью нескольких версий этой спецификации, если это не было намерением в спецификации Referer было бы сказано «URL», а не «URI».
И, чтобы повторить, я, конечно, не думаю, что Cloudflare здесь плохой актер, и я разочарован, увидев, как быстро так много людей «выбрали чью-то сторону», как будто это npm против Cloudflare в битве по этому поводу. На нас повлияла ошибка, которую они сделали, но иногда на нас влияют ошибки, которые они делают, потому что мы их клиенты, и, конечно, они время от времени будут делать ошибки, потому что люди и машины не идеальны. Таков мир. В целом, мы очень довольны полученным ответом, и все мы улучшили наши системы мониторинга и реагирования в свете этого сбоя.
FWIW, "referer" не определяется как URI. См. Спецификацию: https://greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.5.2 . Это ссылка на URI. "install" будет интерпретироваться как путь относительно URI запроса.
@reschke Даже при таком прочтении это все еще в силе.
То есть: из https://registry.npmjs.org/foo
, с Referer: install
, полностью разрешенный Referer будет https://registry.npmjs.org/install
, действительный URI. Из https://registry.npmjs.org/foo/-/foo-1.2.3.tgz
это будет https://registry.npmjs.org/foo/-/install
, также действительный URI.
Даже если я читаю спецификацию шире, чем предполагалось, использование Referer таким образом определенно не является «нарушением» спецификации, и это (полностью простительно!) Ошибочное превышение требований для блокировки или ограничения скорости запросов, которые включают Referer заголовки, которые не являются полностью определенными URL-адресами.
Однако в свете этого, вероятно, было бы целесообразно добавить схему в заголовки Referer, которые отправляет npm cli. Нам нужно будет изучить это, чтобы увидеть, делает ли это более или менее вероятным, что запросы будут искажены прокси. Другой вариант, конечно, - согласиться с тем, что некоторые прокси-серверы будут просто переборщить с фильтрацией, что приведет к немного менее идеальным данным, но вместо этого использовать настраиваемый заголовок с более определенным значением, например npm-command: install
. Мы делаем это для заголовка npm-session
чтобы группировать запросы вместе, и обнаружили случаи, когда мы не получаем этот настраиваемый заголовок, даже если пользовательский агент подразумевает, что это «настоящий» клиент npm (или по крайней мере, претендует на то).
Самый полезный комментарий
Привет и обильные извинения от Cloudflare, своего рода вскрытие прямо в комментариях к вашей проблеме.
Я технический менеджер группы защиты от DDoS-атак, и сегодня утром в 11:06 UTC мы изменили правило, которое повлияло на один из наших сигналов. Сигнал относится к заголовку реферера HTTP, и у нас есть фрагмент кода, который проверяет недопустимые заголовки реферера. В данном случае мы настроили его, чтобы включить не просто «очевидный мусор», но «все, что не соответствует спецификации HTTP» ... т.е. является ли референт URI? Если нет, то это способствует осведомленности о плохом трафике.
Итак ... почему это повлияло на npmjs.org? Оказывается, много трафика NPM отправляет рефереру как «установить», что недопустимо в соответствии со спецификацией HTTP. Поскольку NPM также является сайтом с интенсивным трафиком, это привело к тому, что системы DDoS перехватили это и обработали трафик как HTTP-флуд и определили, что следует применить ограничение скорости.
Когда мы заметили, что в NPM наблюдается рост числа HTTP 429 (как видно из Twitter), мы связались с NPM и начали внутреннее расследование. Как только мы определили основную причину, мы отменили изменение, которое произошло в 13:00 UTC.
Отметим, что NPM и еще 1 сайт используют реферер для целей, выходящих за рамки спецификации HTTP, и мы обновим наши системы, чтобы этого больше не повторилось. Кроме того, мы улучшим наш мониторинг изменений подобного рода, чтобы мы могли быстрее обнаруживать последствия и автоматически откатываться.