Ich erhalte einen E429-Fehler
npm ci
laufen npm ci
gibt den E429-Fehler ( Too Many Requests ) zurück und schließt die Paketinstallation nicht abnpm ci
Gleich hier, aber mit 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
Wir haben das gleiche Problem in unseren Pipelines. Die Antworten variieren zwischen 403 Forbidden
und 420 Too Many Requests
Wir sehen dies in jeder unserer CI-Aufgaben, die in AWS ausgeführt werden
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
Auch für mich auf Bambus bauen:
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
Zentralisierte Infrastruktur: ~ (
(Warten auf die Obduktion, aber nicht den Atem anhalten ...)
Es wäre nützlich, eine Liste von (verifizierten) öffentlichen Registrierungsspiegeln zu haben. Ich habe einige gefunden, aber ich kann ihnen nicht vertrauen.
Gleich, sowohl lokal als auch auf Circle CI
Dies wird auch mit Circle CI und lokal angezeigt
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz
Ich sehe Fehler wie ..
"Der Eigentümer dieser Website (registry.npmjs.org) hat Ihnen vorübergehend den Zugriff auf diese Website untersagt."
und
"Sie sind ratenbegrenzt"
Ich vermute, das hängt alles zusammen?
Dieses Problem tritt auch bei der Bereitstellung auf Heroku auf.
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz
Die gleichen Fehler bei der Bereitstellung auf Heroku.
Gleiches gilt hier für AWS CodeBuild und npm i -g aws-cdk
28 | npm ERR! 429 Zu viele Anfragen - GET https://registry.npmjs.org/aws-cdk
allgemeines Serverproblem?
Ich habe auch das gleiche Problem
npm ERR! Code E429
npm ERR! 429 Zu viele Anfragen - GET https://registry.npmjs.org/silent-error
Gleiches gilt hier für die lokale Installation von Paketen.
Schweden.
`` `npm ERR! Code E429
npm ERR! 429 Zu viele Anfragen - GET https://registry.npmjs.org/lodash
Ja, ich sehe das auch bei Travis für 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.
Das Gleiche passiert hier. Beim Ausführen von npm update
der Fehler angezeigt
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
Gleiches Problem hier. Wir verwenden Bambus ci. Eigene Installation.
Auf die Datei kann vom Server selbst zugegriffen werden:
`` `$ 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
Auflösen von registry.npmjs.org (registry.npmjs.org) ... 104.16.17.35, 104.16.24.35, 104.16.26.35, ...
Verbindung zu registry.npmjs.org (registry.npmjs.org) herstellen | 104.16.17.35 |: 443 ... verbunden.
HTTP-Anfrage gesendet und wartet auf Antwort ... 200 OK
Länge: 6735 (6,6 KB) [Anwendung / Oktett-Stream]
Speichern unter: 'plugin-transform-block-scoping-7.8.3.tgz'
Plugin-Transform-Block-Scoping-7.8.3.tgz 100% [========================================== ================================================== ===========================================>] 6.58K - .-KB / s in 0s
2020-02-17 11:59:28 (95,5 MB / s) - 'Plugin-Transform-Block-Scoping-7.8.3.tgz' gespeichert [6735/6735] `` `
Ist dies auch eine globale Angelegenheit oder vielleicht eine regionale Angelegenheit? Wir hatten letztes Jahr etwas Ähnliches in Deutschland.
Gleiches gilt hier für Gitlab CI
Gleiches hier in den Niederlanden. (AWS Codebuild aus Irland)
Russland zu
Istanbul hier
Dies scheint ein Cloudflare-Problem mit der Website registry.npmjs.org zu sein.
Beim Update wurde die folgende HTML-Antwort angezeigt:
<!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>
Das gleiche Problem tritt bei AWS Codebuild us-east-1 auf. Wurde vor ungefähr 30 Minuten vor Ort aufgelöst, arbeitet aber jetzt wieder (vor Ort aus Irland)
Dies scheint ein Cloudflare-Problem mit der Website registry.npmjs.org zu sein.
Gibt es einen Spiegel, der Cloudflare nicht verwendet?
Gleiches Problem! Build-Pipelines schlagen fehl :(
Gleich: npm ERR! code E429
Das ist es. Internet ist fertig. Auf Wiedersehen allerseits.
Ich werde zu Mittag essen und hoffe, dass dies behoben ist, wenn ich in weniger als einer Stunde zurückkomme.
Wir können so ziemlich bestätigen, dass dies ein npm-Problem ist, aber auf ihrer Statusseite ist alles als betriebsbereit aufgeführt. Was ist dann der Zweck der npm-Statusseite?
Das gleiche Problem. AWS von us-east-1
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/archy/-/archy-1.0.0.tgz
Ich habe gerade auf Twitter Kontakt aufgenommen, damit wir schnell Informationen haben.
Gleich...
npm ERR! code E429
npm ERR! 429 Too Many Requests - GET https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.0.tgz
gleich. Verschiedene Pakete, aber immer wieder 429 zu viele Anfragen für npm install und npm ci, seit heute früher
:(
Wir sind jetzt alle seit dem Morgen unten. NPM ist kaputt. Dublin hier
Funktioniert jetzt gut für mich. 5 $ / Paket. Pm Ich.
Funktioniert jetzt gut für mich. 5 $ / Paket. Pm Ich.
so billig
In Südkorea stehe ich auch vor diesem Problem.
$ npm install --save-dev typescript
npm ERR! code E429
npm ERR! 429 Too Many Requests: [email protected]
Die Installation jedes NPM-Pakets dauert einfach zu lange.
Was ist mit NPM passiert?
Zum Glück müssen wir nur sitzen und warten
Stellen Sie sich vor, wir wären alle Bauarbeiter und plötzlich hätten alle Hämmer aufgehört, auf der ganzen Welt zu arbeiten: Denken:
Wie wäre es mit dem Garnpkg-Spiegel für Ihre Builds?
Es ist alles in Ordnung http://status.npmjs.org/
Es ist alles in Ordnung http://status.npmjs.org/
In der Tat 😄
Diese Diskussion ist nicht gut gealtert
Sie können Folgendes verwenden: 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
Das gleiche Problem in mehreren Umgebungen (Travis, lokal, Server).
NPM: Fast perfekter Spiegel
NPM: Montags nicht auftreten
NPM: Kein Problem Montag
Gleiches Problem bei Gitlab-Läufern
Gleiches Problem beim Versuch eines Builds in Heroku. CF-Fehlercode 1015.
Der Eigentümer dieser Website (registry.npmjs.org) hat Ihnen vorübergehend den Zugriff auf diese Website untersagt
Ich habe auch diesen Fehler erhalten, wenn ich den Befehl npm install ausführe: " Zugriff verweigert | registry.npmjs.org hat Cloudflare verwendet, um den Zugriff einzuschränken. Sie sind ratenbeschränkt. Der Eigentümer dieser Website (registry.npmjs.org) hat Sie vorübergehend gesperrt vom Zugriff auf diese Website. ".
Ich komme aus Cebu, Philippinen. Ist das CloudFlare-Problem oder das NPM?
Der Eigentümer dieser Website (registry.npmjs.org) hat Ihnen vorübergehend den Zugriff auf diese Website untersagt.
Hey Leute, so viel Spaß das auch machen mag, lassen Sie uns dies auf wirklich nützliche Dinge beschränken, damit die Leute wieder anfangen können zu arbeiten.
Es sieht so aus, als ob dieses Problem ziemlich weit verbreitet ist, und nicht jeder, der "das passiert mir auf X" schreibt, wie wäre es, wenn wir fest hängen, bis wir etwas von NPM hören? Oder wir können +1 einen Kommentar abgeben, wenn wir betroffen sind.
NPM: Kein Paketmanager
Wir bekommen auch hier in Schweden Outtages 👌 🙆
Es sieht so aus, als ob dieses Problem ziemlich weit verbreitet ist, und nicht jeder, der "das passiert mir auf X" schreibt, wie wäre es, wenn wir fest hängen, bis wir etwas von NPM hören? Oder wir können +1 einen Kommentar abgeben, wenn wir betroffen sind.
Nein, Meme und nutzlose Kommentare für den Sieg
Das gleiche Problem beim AWS-Build
Bedeutet das, dass wir zum zweiten Mittagessen gehen können?
Das gleiche Problem bei CircleCi Builds
Das gleiche Problem mit Github-Aktionen!
Zeit für die Installation von https://github.com/verdaccio/verdaccio/
Wow, Meme in Kommentaren XD
Leute, es ist großartig, alle auf demselben Boot zu sitzen und etwas Liebe zu teilen, während wir uns stressen, aber ... könnten wir aufhören, uns "mir auch" zu sagen?
Memes sind übrigens immer willkommen!
Dies ist die Folge einer übermäßigen Abhängigkeit vom Computer eines anderen . @phaberest du bist sinnlos und ich auch: -}
gleich!
NPM hat mir gerade gesagt, dass wir den Rest des Tages frei haben können, danke Leute.
Gleiches Problem hier
Gilt das noch?
Gleich
Npm-Hauptquartier im Moment:
Ich gehe davon aus, dass das Büro von npmjs gerade #npm pic.twitter.com/wZy0Bo3PM8 ist
- Nick Hammond (@thehappypenguin), 17. Februar 2020
Das Problem ist jetzt behoben
https://status.npmjs.org/ ist bis grün 💃
NPM:
Gerüchten zufolge wurden NPM-Pakete mit einem Coronavirus infiziert
Ich denke, es ist ein gutes Beispiel, warum es dringend empfohlen wird, eine eigene npm-Registrierung / einen eigenen npm-Proxy zu installieren, um ähnliche Probleme zu schützen, wenn Sie Ihre App aufgrund eines NPM-Registrierungsausfalls nicht bereitstellen können
Wenn Sie warten, während NPM verfügbar ist
NPM möchte, dass wir eine Pause machen
Das Schreiben von "gleich" ist eine niedrige Bewertung.
Gleiches hier bei Casio FX-991ESPLUS
NPM: Jetzt Post Memes!
Gleiches hier aus China.
Gleiches Problem beim Ausführen von npm install auf unserem Build-Server (Teamcity) und lokal.
Ich beginne gerade einen Python-Kurs.
Was ich an dieser Sache liebe, ist, dass mich dieses Problem nicht wirklich von der Arbeit abhält. Leute, die hier Memes posten, halten mich jedoch auf. Ich liebe es: D.
Ich liek Schokoladenmilch
Verwandte Themen .. https://github.com/nextcloud/maps/issues/300
Weil ich faul bin, werde ich meinen Beitrag von dort aus verlinken. Https://github.com/nextcloud/maps/issues/300#issuecomment -586973011
Ja, ich kann npm ci
NPM: keine Pakete paaren
Ich bin gerade in einem Kundengespräch und kann nicht demonstrieren: [
Ich bin gerade in einem Kundengespräch und kann nicht demonstrieren: [
sooo. Sie demonstrieren Ihren Kunden npm install
?
Ich habe das gleiche Problem
Auch in Indien kein Pipeline-Montag 💃
Oh mein Gott, bitte teile node_modules
Ordner, irgendjemand!
dasselbe hier
"All Systems Operational" - die größte Lüge
Instabil, aber nicht besser?
NPM: Niemals Mocks drücken
@ anant-k-singh ja, memes, wo warst du ? ;-) In der Front-End-Community wird jetzt viel gerollt, richtig.
... und wo ist dieser lokale / standortlokale caching npm-Proxy, wenn Sie ihn brauchen?
https://status.npmjs.org/ ist sehr nützlich ...
Jemand sollte einfach einen Ordner angle_s node_modules auf Google Drive hochladen, um Himmels willen
Ich bin gerade in einem Kundengespräch und kann nicht demonstrieren: [
FeelsBadMan, so schlechte "Power of Demo", dass die ganze Welt betroffen ist ..
Sie haben die Statusseite aktualisiert.
npm WARN veraltete Anfrage@2.88.2 : Anfrage ist veraltet, siehe https://github.com/request/request/issues/3142
npm ERR! Code E429
npm ERR! 429 Zu viele Anfragen - GET https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.5.tgz
npm ERR! Ein vollständiges Protokoll dieses Laufs finden Sie in:
npm ERR! C: \ Benutzer \ Lenovo \ AppData \ Roamingnpm-cache_logs \ 2020-02-17T12_50_04_887Z-debug.log
Ich bin nur wegen der Meme hier
Hallo zusammen, könnten wir Memes und Witze auf den jeweiligen Slack / Discord / IRC-Kanälen behalten und nicht auf dieser GitHub-Ausgabe? Sie sind sich dieses Problems bewusst und haben die Statusseite aktualisiert.
npm ERR! Code E429. Hier!
"All Systems Operational" - die größte Lüge
jq -r '.dependencies * .devDependencies | keys[]' package.json | xargs -L 1 -I {} sh -c "echo installing {}; npm i {}; sleep 10"
Es scheint zu funktionieren, wenn Sie nicht alle Pakete auf einmal installieren ... Dies funktioniert, wenn Sie verzweifelt sind, aber es ist ziemlich langsam ...
403/429 Erros für einige Benutzer
Wie wäre es mit allem?
Hallo, gibt es Updates dazu?
E429
hier (Niederlande)
Erstellen von einem lokalen Computer, der von Azure DevOps ausgelöst wird.
Endlich fing es an zu arbeiten (Statusseite 💃)
seit anderthalb Stunden runter. Ich hoffe, wir finden das Update bald
Temp Fix funktioniert für mich, öffnen Sie package-lock.json
Suchen Sie https://registry.npmjs.org
und ersetzen Sie es durch https://registry.npmjs.com
Führen Sie npm ci
Gut zu wissen, dass ich nicht alleine bin 🤣
"von einigen Nutzern erhalten", sagten sie
Gleiches hier auf dem Mars.
Alle Hoffnung ist verloren
Was würde mit der Welt passieren, wenn npm für immer aufhören würde, das ist ein bisschen Denker
Dieses Problem hat mich dazu gebracht, Garn zu probieren, eigentlich zum ersten Mal. Funktioniert als Zauber!
Mein Astrologe hat dieses Ereignis vorhergesagt.
Ich bin gerade in einem Kundengespräch und kann nicht demonstrieren: [
sooo. Sie demonstrieren Ihren Kunden
npm install
?
Ich habe meinen Laptop nicht mitgebracht, mein Kollege sagte, er könne ihn einfach holen.
Teamviewer arbeitet ...
Wenn die Memes schneller als NPM geladen werden
Hallo npm Team
Würden Sie bitte Ihren Computer neu starten?
Freundliche Grüße
Kam für das Problem, blieb für die Meme
Bitte sei respektvoll und vermeide es, irgendetwas außer Memes in diesem Thread zu posten. Vielen Dank.
Es funktioniert
npm install hat endlich bei mir funktioniert
Ich habe ein Angular9 node_modules-Verzeichnis zum Verkauf. DM mir deine Angebote
Es lebt!
@npm
Ah, nicht so lange unten, es gibt kein Memeland mehr :(
Ich berichte live von der npm-Front. Sieht so aus, als würde es wieder funktionieren!
Prost
Temp Fix funktioniert für mich, öffnen Sie package-lock.json
Suchen Siehttps://registry.npmjs.org
und ersetzen Sie es durchhttps://registry.npmjs.com
Führen Sienpm ci
Vielen Dank. Für mich geht das.
Prost, es fing an zu funktionieren
Oh nein ... meine Mailbenachrichtigungen !! 🌊
Arbeiten!
Okay Leute, das war lustig. Bis zum nächsten Mal
Temp Fix funktioniert für mich, öffnen Sie package-lock.json
Suchen Siehttps://registry.npmjs.org
und ersetzen Sie es durchhttps://registry.npmjs.com
Führen Sienpm ci
arbeitete für mich
Der Titel der Ausgabe ändert sich anscheinend von " Zu viele Kommentare ".
Es ist bereits das am meisten kommentierte Problem in der Liste
(Wenn das Github-Problem schneller aktualisiert wird als die npm-Statusseite)
funktioniert auch bei mir
Haben Sie rm -rf node_modules/ package-lock.json && npm install
ausprobiert?
Warten auf Abstimmungen
https://github.com/npm/cli/issues/836#issuecomment -586973004
Sie können Folgendes verwenden: 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
Warum all die Downvotes für open-registry
?
Alternativ können Sie npm config set registry https://registry.npm.taobao.org
ausprobieren
Das hat Spaß gemacht
node_modules zu verkaufen. Uhr mich für gute Angebote: D.
Haben Sie
rm -rf node_modules/ package-lock.json && npm install
ausprobiert?
429 Zu viele Abstimmungen
Viel Spaß beim NPMing.
Meine Reaktion, wenn NPM sagt, dass ich keine Memes mehr einreichen soll
Haben Sie versucht, den PC neu zu starten, wird der Fehler möglicherweise behoben. Weil es mir geholfen hat.
Mein Build hat wieder funktioniert! Ich schätze, sie haben es endlich aus- und wieder eingeschaltet
Houston, es funktioniert hier.
funktioniert jetzt auch für mich
node_modules zu verkaufen. Uhr mich für gute Angebote: D.
Wahrscheinlich das Schlimmste, was Sie in einer Open Source- Community schreiben können 😋
gut scheint behoben zu sein. arbeitet in der AWS-Region in Singapur
Funktioniert jetzt!
arbeitet jetzt North Virginia AWS Region
Jetzt arbeiten - Bereich 51 👽
Es funktioniert jetzt. Vielen Dank an das NPM Support Team. Sana alle <3
Wir sehen uns später bei einer anderen Ausgabe, Internet-Leute
Meine Herren, es war mir ein Vergnügen!
vielleicht schließen?
Zurück online in Bulgarien. Danke, Jungs!
können wir das nochmal machen
Mein Name Jeff
CI läuft ... jetzt geht es weiter zur Arbeit ... es war eine Ehre
Dieser Ausfall hat mir geholfen, meine Docker-Datei zu optimieren, kein Scherz.
Danke fürs Händchenhalten.
Bitte sperren Sie dieses Problem. Ich kann niemanden wieder zur Arbeit bringen, auch mich nicht
Großbritannien hier. Beim Installieren von next.js trat das Problem 429 auf, aber Reagieren und Reagieren waren in Ordnung. Jetzt scheint alles in Ordnung zu sein
Hallo npm Team
Würden Sie bitte Ihren Computer neu starten?
Freundliche Grüße
Sie haben es endlich geschafft !!! dreimal...
Arbeite jetzt in Schweden 🇸🇪!
Bis zum nächsten Mal, wenn NPM nicht verfügbar ist!
Zumindest scheint Github hoch verfügbar zu sein
GitHub versucht, die Emoji-Antworten live zu aktualisieren, und es ist wie ein Emoji-Feuerwerk.
Nächste Ausgabe: GitHub ist ausgefallen: D.
Ursache: Zu viele Anfragen im NPM-Fehler # 837 836
Success! created app at C:/XXXX
"Überwachung - Unser Content Delivery-Partner hat uns mitgeteilt, dass er einen Fix implementiert hat. Wir überwachen."
Cloudflare-Problem?
Grand Rapids, MI hier
Dies ist mein erster Kommentar zu Github mit so vielen Reaktionen - ich liebe euch alle. Bis bald
EDIT: so viele Downvotes * 😄keep it up! runter ich meine ..
Ralph hat das Internet kaputt gemacht!
Ich möchte nur ein Teil davon sein. Gute Arbeit NPM 👍
Also machen wir jetzt alle Meme?
Endlich funktioniert es !!!
(https://user-images.githubusercontent.com/57898245/74657035-b1009500-518f-11ea-9e95-290b51db7dbb.png)
Sieht aus wie jetzt behoben.
Bitte sperren Sie es ab, ich kann niemanden dazu bringen, wieder zur Arbeit zu gehen, auch mich nicht
Nein
NPM-Probleme bringen Menschen zusammen :)
Darf ich Sie, da ich Ihre ganze Aufmerksamkeit habe, für mein neuestes Pyramidenschema interessieren?
In der Tschechischen Republik sieht jetzt alles gut aus :) Danke NPM-Team
NPM mit FORCE
Ok auch im Iran, lustiges Thema!
npm Hauptquartier jetzt sein
Lass die Meme mit dir sein
🇵🇹
lol
Meine Pakete konnten nicht installiert werden!
Oh meine Güte, ich bin zu spät zur Party gekommen, es funktioniert jetzt.
Danke Internet!
Konsole geändert um npm: 100:
Hey, ich bin hier, um einen Fehler mit ...
▲
▲ ▲
PSHH PSHH YOBA MI V EFIRE !! 1 🚣♂️
Alle an Bord des Meme-Zuges! 🚂
Das Posten von Memes / Witzen in einer Ausgabe verschwendet die Zeit von Personen, die tatsächlich in der Lage sein müssen, die Ausgabe durchzulesen.
Hör auf. Verwenden Sie Emoji reagiert, wenn Sie das Bedürfnis haben.
Wir brauchen mehr von diesen Fehlern, besonders am Montag.
@cmcarey es ist nie schlecht zu lächeln und zu lachen, es war nie die Zeit zu verschwenden, es wird deine Produktivität verbessern, Meme und Witze machen uns zu einem Menschen anstatt nur zu arbeitenden Maschinen, sogar Detroit wird ein menschlicher Mann!
Hallo von der gleichen GALARETKA !!
Hallo aus dem Internet!
Zumindest könnte es bald das am meisten kommentierte Thema werden.
Vorschlag: Erstellen Sie auf der npm-Statusseite einen Eintrag für "CDN-Dienste", da das eigentliche Problem anscheinend Cloudflare war
https://github.com/npm/cli/issues/836#issuecomment -586992790
@cmcarey es ist nie schlecht zu lächeln und zu lachen, es war nie die Zeit zu verschwenden, es wird deine Produktivität verbessern, Meme und Witze machen uns zu einem Menschen anstatt nur zu arbeitenden Maschinen, sogar Detroit wird ein menschlicher Mann!
Dies ist nicht die Zeit oder der Ort dafür. Eine Flut von Kommentaren, wie wir sie hier sehen, erschwert das Durchsuchen, um Details zu finden, die den Leuten helfen können, die das Problem tatsächlich beheben können.
Jetzt in Brasilien arbeiten: Brasilien:!
Andre von npm security hier. Unser Content Delivery-Partner hat uns mitgeteilt, dass ein Fix implementiert wurde. und wir beobachten die Situation weiterhin. Weitere Informationen finden Sie auf unserer Statusseite: https://status.npmjs.org/.
Schließen Sie das Problem, aber wenn Sie ein Problem haben, wenden Sie sich bitte an support@npmjs.com
@aeleuterio Gibt es eine Chance, dass wir eine Obduktion dazu bekommen?
Arbeite jetzt!
OH MEIN GOTT. Mach das nicht noch einmal! Je! )))))
Es funktioniert nicht wieder. Ich denke, das Problem wurde von Ihren Partnern nicht behoben.
@cmcarey es ist nie schlecht zu lächeln und zu lachen, es war nie die Zeit zu verschwenden, es wird deine Produktivität verbessern, Meme und Witze machen uns zu einem Menschen anstatt nur zu arbeitenden Maschinen, sogar Detroit wird ein menschlicher Mann!
Meme und Witze übertönen das Gespräch, das für die Behebung des tatsächlichen Problems von entscheidender Bedeutung sein kann.
Jetzt arbeiten 😓
Meme und Witze übertönen das Gespräch, das für die Behebung des tatsächlichen Problems von entscheidender Bedeutung sein kann.
In der Tat musste ich durch ungefähr 200 Memes scrollen, um die aktuelle Statusaktualisierung von NPM zu sehen.
Nur zu Ihrer Information: Garn konnte die Pakete laden, ohne das Ratenlimit auszulösen: 1)
Garn ist großartig! (und sicher)
Hallo und entschuldigen Sie sich bei Cloudflare, einer Art Post-Mortem direkt in Ihren Problemkommentaren.
Ich bin der technische Leiter des DDoS-Schutzteams und heute Morgen um 11:06 UTC haben wir eine Regel optimiert, die eines unserer Signale beeinflusst. Das Signal bezieht sich auf den HTTP-Referer-Header, und wir haben einen Code, der ungültige Referer-Header untersucht. In diesem Fall haben wir es so angepasst, dass es nicht nur "offensichtlichen Müll" enthält, sondern "alles, was nicht der HTTP-Spezifikation entspricht" ... dh ist der Referer eine URI? Wenn nicht, trägt es zum Wissen über schlechten Verkehr bei.
Also ... warum hat sich das auf npmjs.org ausgewirkt? Es stellt sich heraus, dass viel NPM-Verkehr den Referer als "install" sendet, was gemäß der HTTP-Spezifikation ungültig ist. Da NPM auch eine stark frequentierte Site ist, haben die DDoS-Systeme dies erfasst und den Datenverkehr als HTTP-Flut behandelt und festgelegt, dass ein Ratenlimit angewendet werden sollte.
Als wir bemerkten, dass NPM einen Anstieg der HTTP 429s verzeichnete (wie auf Twitter zu sehen), kontaktierten wir NPM und leiteten eine interne Untersuchung ein. Sobald wir die Grundursache identifiziert hatten, haben wir die Änderung, die um 13:00 UTC erfolgte, rückgängig gemacht.
Wir werden feststellen, dass NPM und eine andere Site den Referer für Zwecke außerhalb der HTTP-Spezifikation verwenden, und wir werden unsere Systeme aktualisieren, um sicherzustellen, dass dies nicht erneut geschieht. Darüber hinaus werden wir unsere Überwachung bei Änderungen dieser Art verbessern, damit wir die Auswirkungen früher erkennen und automatisch zurücksetzen können.
Danke für die Erklärung @ buro9
Hoffentlich haben Sie einige explizite Tests für NPM, angesichts der Bedeutung für die Entwicklergemeinschaft.
Wir (und viele andere, da bin ich mir sicher) konnten heute Morgen während der EU-Geschäftszeiten zwei Stunden lang keine Reihe von Projekten durchführen. Dies sollte uns alle auch daran erinnern, bessere Kontinuitätsmaßnahmen zu treffen, wenn diese Ereignisse eintreten.
Meiner Meinung nach ist es am besten sicherzustellen, dass die Anforderungen des NPM-Installationsprogramms der HTTP-Spezifikation entsprechen.
Meiner Meinung nach ist es am besten sicherzustellen, dass die Anforderungen des NPM-Installationsprogramms der HTTP-Spezifikation entsprechen.
Der Referer sollte leer sein, das Installationsprogramm sollte ein Benutzeragent sein
Vielen Dank, ich kann alle meine 5464950-Abhängigkeiten alle 15 Minuten für einen weiteren Build herunterladen.
@ buro9 Wir würden uns
In Bezug auf das Zeigen auf HTTP-Spezifikationen möchte ich angesichts der Tatsache, dass dieses Verhalten seit Jahren besteht, überprüfen, welche Änderungen in CF heute vorgenommen wurden, die zu diesem plötzlichen Ergebnis der "Einhaltung der HTTP-Spezifikation" geführt haben.
Ich werde Sie erneut bitten, unsere offenen Tickets nachzuschlagen und uns die Obduktion für die letzten beiden Ausfälle zu melden. Wir möchten dies lieber direkt von Ihnen erfahren, als sie in einer Ausgabe auf Github zu sehen. .
Hallo und entschuldige mich bei Cloudflare,
Ich glaube nicht, dass du dich entschuldigen musst. npm hat offensichtlich das Referrer-Feld durcheinander gebracht und Sie haben nichts falsch gemacht. Nur weil es in der Vergangenheit versehentlich geklappt hat, heißt das nicht, dass es so bleiben sollte. Wer soll garantieren, dass so etwas in Zukunft nicht mehr passiert, weil jemand die Spezifikation respektiert?
npm hat offensichtlich das Referrer-Feld durcheinander gebracht und Sie haben nichts falsch gemacht. Nur weil es in der Vergangenheit versehentlich geklappt hat, heißt das nicht, dass es so bleiben sollte.
Das nennt man BC-Pausen und sollte nicht in derselben 'Version' auftreten.
npm hat offensichtlich das Referrer-Feld durcheinander gebracht und Sie haben nichts falsch gemacht. Nur weil es in der Vergangenheit versehentlich geklappt hat, heißt das nicht, dass es so bleiben sollte.
Das nennt man BC-Pausen und sollte nicht in derselben 'Version' auftreten.
Ja, ich gebe dir diesen Punkt. Aber hoffentlich lautet die Entscheidung nicht "es bleibt für immer so und jeder muss sich daran halten".
(…)
Wir haben eine Regel optimiert, die eines unserer Signale beeinflusst. Das Signal bezieht sich auf den HTTP-Referer-Header, und wir haben einen Code, der ungültige Referer-Header untersucht.
(…)
Also ... warum hat sich das auf npmjs.org ausgewirkt? Es stellt sich heraus, dass viel NPM-Verkehr den Referer als "install" sendet, was gemäß der HTTP-Spezifikation ungültig ist.
Erlaubt der Header Referer
nicht die Verwendung relativer / partieller URIs? 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
Wie können Sie beliebigen, urlencodierten Text von einem tatsächlichen Teil-URI unterscheiden, ohne den Server auf das Vorhandensein des URI zu prüfen?
Wenn ich den Abzügen der Spezifikation folge, kann ein Referer
Header install
auf den ersten Blick durchaus gültig sein:
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 / ":" / "@"
Wenn ich die Spezifikation also nicht schrecklich falsch verstehe, muss ich mich fragen: Warum zum Teufel wurde dieser Referrer-Header als ungültig behandelt? Überprüft Cloudflare auf Anfrage die Existenz dieser URI (und speichert sie dann zwischen), oder handelt es sich erneut um ein schnelles und lockeres "Whoopsie"?
@datenwolf syntaktisch sollte es möglich sein, einen partiellen URI wie install
, aber wie wäre es damit, ein paar Zeilen unter Ihrem zitierten Text:
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".
Dies gilt hier.
Dies beantwortet jedoch nicht Ihre letzte Frage. Es scheint jedoch, dass das Thema etwas komplexer ist und sich in zwei Teile aufteilt: 1) Entspricht npm der http-Spezifikation und 2) verwendet CF zuverlässige Erkennungsregeln. Und vielleicht, nur vielleicht, lautet die Antwort auf beide Fragen: Nein. Aber ich überlasse das anderen, um darüber zu diskutieren. Ich wollte nur darauf hinweisen, dass eine vorzeitige Entschuldigung für "etwas" potenzielle Fehler möglicherweise nicht behoben hat, sodass der Wortlaut für eine echte "Lösung" des Problems - was auch immer es sein mag - etwas unglücklich gewesen sein könnte.
Anstatt block mode
am ersten Tag zu implementieren, sollte es für einige Zeit in observe mode
sein.
@datenwolf syntaktisch sollte es möglich sein, einen partiellen URI wie "Installieren" zu haben, aber wie wäre es damit, ein paar Zeilen unter Ihrem zitierten Text:
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".
Dies gilt hier.
Ja tut es. Vielleicht habe ich nicht klar genug gemacht, dass ich mir dessen voll bewusst bin. Aber das ist völlig nebensächlich.
Wie Sie bereits betont haben
(…) Es scheint, dass das Thema etwas komplexer ist und sich in zwei Teile aufteilt: 1) entspricht npm der http-Spezifikation und 2) verwendet CF zuverlässige Erkennungsregeln. (…)
und ich habe bereits darauf hingewiesen, dass ohne eine explizite Überprüfung der Existenz des URI Referer
die Gültigkeit des Headers nicht zu entscheiden ist.
Verstößt npm gegen die Spezifikation? Sicher.
Kann CF das richtig erkennen? Nur durch explizite Überprüfung des URI. Führt CF diese Prüfung durch? Ich weiß es noch nicht (aber ich könnte ein Testgelände dafür einrichten).
Ohne weitere Informationen muss ich jedoch nur davon ausgehen, dass CF wieder so war wie CF und aus unbegründeten Gründen einen Teil des Internets kaputt gemacht hat… noch einmal.
Bei alledem ist zu beachten, dass ein CDN nur sehr wenig tun kann, um seinen Service sinnvoll zu verbessern, und das nicht das Risiko birgt, "einen Teil des Internets zu beschädigen". Die Art des Dienstes, den CF anbietet, und ihre wohlverdiente Beliebtheit als einer, der diesen Dienst anbietet, bedeutet, dass sie im Grunde immer mit dem Feuer spielen und wahrscheinlich eine ganze Menge Leute verärgern, wenn sie etwas anderes verzeihen und gut gemeint machen Fehler.
Nachdem ich diese npm-Sache schon seit einiger Zeit gemacht habe, habe ich keinen Mangel an Sympathie für ihre Position, und ich glaube, dass es unangemessen ist, sie dafür zu verachten. Sie machen einen großartigen Job, schützen npm (und damit die gesamte JS-Community) vor vielen schlechten Schauspielern und Ausfällen und machen alle unsere Builds viel schneller und zuverlässiger. Wir lieben und schätzen Cloudflare. Also lasst uns hier nett sein.
Abgesehen davon glaube ich, dass npm weder gegen den Buchstaben noch gegen den Geist der relevanten HTTP-Spezifikationen verstößt, wenn wir den Referer-Header verwenden, um den Befehl anzugeben, der dazu geführt hat, dass eine bestimmte Anfrage gestellt wurde. Ich hoffe, dass jeder, der dieser Diskussion folgt, die folgende Flut von HTTP-Pedanterie nützlich oder zumindest erfreulich findet. Wenn das nicht deine Art ist, mach bitte etwas anderes, du wirst keine gute Zeit haben, dies zu lesen :)
CF stellte eine Änderung bereit, bei der die ungewöhnliche Verwendung von HTTP-Headern als Heuristik behandelt wurde, um als böswillige Anforderung gekennzeichnet zu werden. Wenn Sie sich hauptsächlich mit Datenverkehr von Webbrowsern befassen, fehlt im Allgemeinen immer der Referer-Header, entweder about:blank
oder eine vollständig qualifizierte URL. Ein Header wie Referer: install
ist also komisch.
Allerdings: Die Spezifikation sagt "URI". Es heißt nicht "URL". Es heißt sicherlich nicht "Vollqualifizierte URL". Angesichts der normalerweise akribischen Verwendung von "URI" gegenüber "URL" in der IETF-Dokumentation, der haarspaltenden Diskussionen, die häufig über rfc1945 erschien (obwohl es lange zuvor verwendet wurde), _und_ dass die HTTP-Spezifikationen "URI" durch mehrere Runden von Aktualisierungen und Überarbeitungen beibehalten haben, muss ich schließen, dass der _intent_ hier ist, dass Referer eine URI ist und nicht eine URL an sich sein muss, sowie der Buchstabe von spec.
Ein URI und eine URL sind nicht dasselbe. Beide verknüpften RFCs wurden seit ihrer Einführung durch nachfolgende RFCs (teilweise) aktualisiert und veraltet, und ich empfehle allen, die an dieser Stelle noch lesen, dringend, den Links zu folgen und zu erfahren, wie sich die Standards für die einheitliche Standortbestimmung und Identifizierung von Ressourcen auf subtile Weise geändert und erweitert haben und interessante Wege im Laufe der Jahre.
Das Fazit lautet: Der HTTP Referer
-Header muss kein Uniform Resource _Locator_ sein, sondern ein Uniform Resource _Identifier_. Es ist nicht erforderlich, dass dieser Bezeichner ein bekanntes URI-Schema verwendet oder dass er eher eine vollständige als eine relative Form ist. Die einzige Einschränkung besteht darin, dass (a) es sich um eine URI handeln muss und (b) wenn die Anforderung eine direkte Benutzeranforderung erfüllt, die keinerlei Kennung hat, z. B. die Eingabe einer URL in eine Adressleiste es muss weggelassen werden.
Ein URI muss explizit nicht von einem bestimmten Netzwerkagenten oder über ein bestimmtes Protokoll lokalisierbar, abrufbar oder auflösbar sein.
install
ist also eine Kennung für das Objekt, mit dem der Benutzer interagiert hat und das die Anforderung verursacht hat. Sie haben die URL zum Paket oder Tarball nicht in eine Adressleiste eingegeben, sondern npm install
und _it_ hat die Ressource wiederum über HTTPS abgerufen. Um diese Ressource aufzulösen, mussten einige HTTP-Anforderungen gestellt werden. Es wird kein Schema bereitgestellt, aber keines ist erforderlich. "install" ist eine kompakte Reihe von Zeichen, die eine Ressource identifizieren. Es handelt sich um eine schemalose (dh nicht vollständig qualifizierte) URI.
Da URI-Semantik und -Syntax durch ihr Schema definiert sind, kann ohne ein Schema nicht gesagt werden, dass install
nicht gültig ist. Zum Beispiel ist tel:+12345678901
ein gültiger URI (und eine gültige URL), http:+12345678901
jedoch nicht. Um zu wissen, ob +12345678901
eine gültige Teil-URI ist, müssen Sie das Schema kennen. Seine Lokalisierbarkeit würde von den Einzelheiten der Telefonsysteme im Nordosten von Ohio, USA, abhängen. Wenn ein Telefonanruf an ein automatisiertes System unter dieser Nummer eine HTTP-Anforderung auslöste, wäre es vollkommen angemessen, wenn diese HTTP-Anforderung einen Referer-Header von +12345678901
. Wenn der Server erwartet, Anforderungen von einem solchen Telefonsystem zu erhalten, kann er das Schema basierend auf dem Kontext ableiten.
Genau das passiert mit dem npm-Client und der npm-Registrierung. Es sendet einen Referer-Header, der den ausgeführten Befehl enthält. (Wenn der Befehl Positionsargumente enthält, wird alles, was /
oder \
redigiert, da dies ein privater Pfad, eine URL oder ein Git-Repo sein kann.) Dies ist semantisch und syntaktisch korrekt und angemessen Verwendung des HTTP-Referer-Headers in einem solchen Nicht-Browser-Kontext, und ich bin der festen Überzeugung, dass nach 30 Jahren Überarbeitung, Analyse und Überprüfung durch die IETF durch mehrere Versionen dieser Spezifikation, wenn dies nicht beabsichtigt war In der Referer-Spezifikation hätte es "URL" statt "URI" gesagt.
Und um es noch einmal zu wiederholen, ich glaube nicht, dass Cloudflare hier ein schlechter Schauspieler ist, und ich bin enttäuscht zu sehen, wie schnell so viele Leute "Seiten ausgewählt" haben, als ob es npm gegen Cloudflare in einem Kampf darum ist. Wir waren von einem Fehler betroffen, den sie gemacht haben, aber manchmal sind wir von Fehlern betroffen, die sie machen, weil wir ihre Kunden sind, und natürlich werden sie von Zeit zu Zeit Fehler machen, weil Menschen und Maschinen sind nicht perfekt. So ist die Welt eben. Im Großen und Ganzen sind wir sehr zufrieden mit der Reaktion, die wir erhalten haben, und wir haben alle unsere Überwachungs- und Reaktionssysteme angesichts dieses Schluckaufs verbessert.
FWIW, der "Referer" ist nicht als URI definiert. Siehe die Spezifikation: https://greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.5.2 . Es ist eine URI-Referenz. "install" wird als Pfad relativ zum Anforderungs-URI interpretiert.
@reschke Auch bei dieser Lesung ist es noch vollkommen gültig.
Das heißt: Ab https://registry.npmjs.org/foo
mit Referer: install
der vollständig aufgelöste Referer https://registry.npmjs.org/install
, eine gültige URI. Ab https://registry.npmjs.org/foo/-/foo-1.2.3.tgz
wäre es https://registry.npmjs.org/foo/-/install
, ebenfalls eine gültige URI.
Selbst wenn ich die Spezifikation breiter als beabsichtigt lese, ist es sicherlich keine "Verletzung" der Spezifikation, Referer auf diese Weise zu verwenden, und es ist eine (völlig verzeihliche!) Fehlerhafte Überreichweite, um Anfragen zu blockieren oder zu begrenzen, die Referer enthalten Header, die keine vollständig qualifizierten URLs sind.
In Anbetracht dessen wäre es jedoch wahrscheinlich sinnvoll, ein Schema auf die Referer-Header zu setzen, die die npm-CLI sendet. Wir müssten dies untersuchen, um festzustellen, ob es mehr oder weniger wahrscheinlich ist, dass Anfragen von Proxys entstellt werden. Eine andere Möglichkeit besteht natürlich darin, zu akzeptieren, dass einige Proxys nur zu stark gefiltert werden, was zu etwas weniger idealen Daten führt. Verwenden Sie stattdessen einen benutzerdefinierten Header mit einer definitiveren Bedeutung, z. B. npm-command: install
. Wir tun dies für den npm-session
-Header, um Anforderungen zu gruppieren, und haben Fälle gefunden, in denen wir diesen benutzerdefinierten Header nicht erhalten, obwohl der Benutzeragent impliziert, dass es sich um einen "echten" npm-Client handelt (oder um zumindest behauptet zu sein).
Hilfreichster Kommentar
Hallo und entschuldigen Sie sich bei Cloudflare, einer Art Post-Mortem direkt in Ihren Problemkommentaren.
Ich bin der technische Leiter des DDoS-Schutzteams und heute Morgen um 11:06 UTC haben wir eine Regel optimiert, die eines unserer Signale beeinflusst. Das Signal bezieht sich auf den HTTP-Referer-Header, und wir haben einen Code, der ungültige Referer-Header untersucht. In diesem Fall haben wir es so angepasst, dass es nicht nur "offensichtlichen Müll" enthält, sondern "alles, was nicht der HTTP-Spezifikation entspricht" ... dh ist der Referer eine URI? Wenn nicht, trägt es zum Wissen über schlechten Verkehr bei.
Also ... warum hat sich das auf npmjs.org ausgewirkt? Es stellt sich heraus, dass viel NPM-Verkehr den Referer als "install" sendet, was gemäß der HTTP-Spezifikation ungültig ist. Da NPM auch eine stark frequentierte Site ist, haben die DDoS-Systeme dies erfasst und den Datenverkehr als HTTP-Flut behandelt und festgelegt, dass ein Ratenlimit angewendet werden sollte.
Als wir bemerkten, dass NPM einen Anstieg der HTTP 429s verzeichnete (wie auf Twitter zu sehen), kontaktierten wir NPM und leiteten eine interne Untersuchung ein. Sobald wir die Grundursache identifiziert hatten, haben wir die Änderung, die um 13:00 UTC erfolgte, rückgängig gemacht.
Wir werden feststellen, dass NPM und eine andere Site den Referer für Zwecke außerhalb der HTTP-Spezifikation verwenden, und wir werden unsere Systeme aktualisieren, um sicherzustellen, dass dies nicht erneut geschieht. Darüber hinaus werden wir unsere Überwachung bei Änderungen dieser Art verbessern, damit wir die Auswirkungen früher erkennen und automatisch zurücksetzen können.