أتلقى خطأ 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
وجود نفس الأخطاء عند النشر على heroku.
نفس الشيء هنا مع AWS CodeBuild و npm i -g aws-cdk
28 | npm خطأ! 429 طلبات كثيرة جدًا - احصل على https://registry.npmjs.org/aws-cdk
مشكلة عامة في الخادم؟
أنا أيضا لدي نفس المشكلة
npm خطأ! كود E429
npm خطأ! 429 طلبات كثيرة جدًا - احصل على https://registry.npmjs.org/silent-error
نفس الشيء هنا عند تثبيت الحزم محليًا.
السويد.
"" خطأ npm! كود E429
npm خطأ! 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
نفس المشكلة هنا. نحن نستخدم الخيزران ci. التثبيت الخاص.
يمكن الوصول إلى الملف من الخادم نفسه:
"" $ 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
جاري حل register.npmjs.org (register.npmjs.org) ... 104.16.17.35 ، 104.16.24.35 ، 104.16.26.35 ، ...
الاتصال بـ Registry.npmjs.org (register.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.
هل هناك أي مرآة لا تستخدم Cloudflare؟
نفس المشكلة! تعطل خطوط الأنابيب :(
نفسه: 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 و 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 وقتًا طويلاً ليتم تثبيتها.
ماذا حدث لـ 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
تواجه نفس المشكلة في بيئات متعددة (ترافيس ، محلي ، خادم).
NPM: مرآة مثالية تقريبًا
NPM: لا يعمل يوم الاثنين
NPM: لا توجد مشكلة يوم الاثنين
نفس المشكلة مع عدائي جيتلاب
نفس المشكلة عندما حاولت بناء في heroku. CF- خطأ كود 1015.
لقد منعك مالك هذا الموقع (register.npmjs.org) مؤقتًا من الوصول إلى هذا الموقع
لقد تلقيت هذا الخطأ أيضًا عند تنفيذ أمر تثبيت npm: "تم رفض الوصول | Registry.npmjs.org استخدم Cloudflare لتقييد الوصول. أنت مقيد بالسعر. لقد قام مالك موقع الويب هذا (register.npmjs.org) بحظرك مؤقتًا من الوصول إلى هذا الموقع ".
انا من سيبو الفلبين. هل هذه مشكلة CloudFlare أم NPM؟
لقد منعك مالك هذا الموقع (Registry.npmjs.org) مؤقتًا من الوصول إلى هذا الموقع.
مرحبًا يا رفاق ، بقدر ما قد يكون هذا ممتعًا ، يرجى السماح لنا بتقييد هذا على الأشياء المفيدة بالفعل حتى يتمكن الأشخاص من بدء العمل مرة أخرى.
يبدو أن هذه المشكلة منتشرة إلى حد كبير ، فبدلاً من أن ينشر الجميع "هذا يحدث لي على X" ، فما رأيك في الانتظار حتى نسمع شيئًا من NPM؟ أو يمكننا إجراء 1+ للتعليق إذا تأثر.
NPM: ليس مدير حزم
نحن نحصل على انقطاع هنا في السويد أيضًا 👌 🙆♂
يبدو أن هذه المشكلة منتشرة إلى حد كبير ، فبدلاً من أن ينشر الجميع "هذا يحدث لي على X" ، فما رأيك في الانتظار حتى نسمع شيئًا من NPM؟ أو يمكننا إجراء 1+ للتعليق إذا تأثر.
ناه ، الميمات والتعليقات عديمة الفائدة من أجل الفوز
تواجه نفس المشكلة على AWS build
هل هذا يعني أنه يمكننا المغادرة لتناول الغداء الثاني؟
وجود نفس المشكلة في CircleCi Builds
تواجه نفس المشكلة في إجراءات جيثب!
حان وقت التثبيت https://github.com/verdaccio/verdaccio/
واو ، الميمات في التعليقات XD
يا رفاق ، إنه لأمر رائع أن نكون جميعًا على نفس القارب وأن نشارك بعض الحب أثناء إجهادنا ، لكن ... هل يمكننا التوقف عن قول "أنا أيضًا" لبعضنا البعض؟
الميمات دائما موضع ترحيب ، بالمناسبة!
هذا هو نتيجة الاعتماد المفرط على كمبيوتر شخص آخر . phaberest أنت
نفسه!
أخبرني NPM للتو أنه يمكننا أخذ بقية اليوم ، شكرًا أيها الناس.
نفس المشكلة هنا
هل هذا لا يزال ساري المفعول؟
نفسه
مقر Npm الآن:
أفترض مكتب npmjs الآن pic.twitter.com/wZy0Bo3PM8
- نيك هاموند (theppypenguin) 17 فبراير 2020
تم حل المشكلة الآن
https://status.npmjs.org/ حتى اللون الأخضر 💃
NPM:
تقول الشائعات إن حزم NPM أصيبت بفيروس كورونا
أعتقد أنه مثال جيد يوصى بشدة بتثبيت سجل / وكيل npm خاص لحماية المشكلات المماثلة عندما لا تتمكن من نشر تطبيقك بسبب انقطاع سجل NPM
عندما تنتظر لحين توفر NPM
NPM تريد منا أن نأخذ استراحة
كتابة "نفس" تصنيف منخفض.
نفس الشيء هنا في Casio FX-991ESPLUS
NPM: الآن ، انشر الميمات!
نفس الشيء هنا من الصين.
نفس المشكلة عند تشغيل تثبيت npm على خادم البناء (Teamcity) ومحليًا.
أنا أبدأ دورة بيثون الآن.
ما أحبه في هذا هو أن هذه المشكلة لا تمنعني في الواقع من العمل. ومع ذلك ، فإن الأشخاص الذين ينشرون الميمات هنا يوقفونني. أحبه: د
أنا أكذب حليب الشوكولاتة
موضوع ذو صلة .. 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 drive من أجل الجنة
أنا في اجتماع عميل الآن ولا يمكنني العرض التوضيحي: [
يشعر الرجل السيء ، "قوة العرض" السيئة لدرجة أن العالم كله يتأثر ..
قاموا بتحديث صفحة الحالة.
npm تم إهمال WARN request@2.88.2 : تم إهمال الطلب ، راجع https://github.com/request/request/issues/3142
npm خطأ! كود E429
npm خطأ! 429 طلبات كثيرة جدًا - احصل على https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.5.tgz
npm خطأ! يمكن العثور على سجل كامل لهذا التشغيل في:
npm خطأ! C: \ Users \ Lenovo \ AppData \ Roamingnpm-cache_logs \ 2020-02-17T12_50_04_887Z-debug.log
أنا هنا فقط من أجل الميمات
مرحبًا بالجميع ، هل يمكننا الاحتفاظ بالميمات والنكات لقنوات Slack / Discord / IRC المعنية بدلاً من مشكلة GitHub هذه؟ إنهم على علم بهذه المشكلة ، وقد قاموا بتحديث صفحة الحالة.
npm خطأ! كود E429. هنا!
"جميع الأنظمة تعمل" - أكبر كذبة
jq -r '.dependencies * .devDependencies | keys[]' package.json | xargs -L 1 -I {} sh -c "echo installing {}; npm i {}; sleep 10"
يبدو أنه يعمل إذا لم تقم بتثبيت جميع الحزم الخاصة بك في وقت واحد ... سيعمل هذا إذا كنت يائسًا ولكنه بطيء جدًا ...
403/429 أخطاء لبعض المستخدمين
ماذا عن كل شيء؟
مرحبا ، هل هناك أي تحديثات على هذا؟
E429
هنا أيضًا (هولندا)
البناء من جهاز محلي تم تشغيله بواسطة Azure DevOps.
أخيرًا بدأ العمل (صفحة الحالة 💃)
منذ ساعة ونصف. نأمل أن نجد الإصلاح قريبا
إصلاح مؤقت يعمل معي ، افتح package-lock.json
ابحث عن https://registry.npmjs.org
واستبدله بـ https://registry.npmjs.com
قم بتشغيل npm ci
من الجيد معرفة أنني لست وحدي
وقالوا "تلقى من قبل بعض المستخدمين"
نفس الشيء هنا على كوكب المريخ.
ضاع كل أمل
ماذا سيحدث للعالم إذا توقفت npm إلى الأبد ، هذا مفكر قليلاً
هذه القضية جعلتني أحاول الغزل .. في الواقع لأول مرة. يعمل كسحر!
المنجم الخاص بي توقع هذا الحدث.
أنا في اجتماع عميل الآن ولا يمكنني العرض التوضيحي: [
سوو. أنت تستعرض
npm install
لعملائك؟
لم أحضر جهاز الكمبيوتر المحمول الخاص بي ، قال زميلي إنه يمكنه فقط إحضاره.
برنامج TeamViewer يعمل مع ...
عندما يتم تحميل الميمات أسرع من NPM
مرحبًا فريق npm
هل تسمح بإعادة تشغيل جهاز الكمبيوتر الخاص بك من فضلك؟
تحياتي الحارة
جاء من أجل القضية ، وبقي للميمات
يرجى التحلي بالاحترام وتجنب نشر أي شيء باستثناء الميمات في هذا الموضوع. شكرا لك.
إنه يعمل
عملت تثبيت npm أخيرًا بالنسبة لي
لقد حصلت على Angular9 node_modules dir للبيع. DM لي العروض الخاصة بك
انه حي!
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 للبيع. مساء لي لعروض جيدة: د
هل جربت
rm -rf node_modules/ package-lock.json && npm install
؟
429 عدد كبير جدًا من الأصوات المعارضة
استمتع NPMing.
رد فعلي عندما تقول NPM للتوقف عن إرسال الميمات
هل حاولت إعادة تشغيل جهاز الكمبيوتر ، ربما سيختفي الخطأ. لأنها ساعدتني.
بدأ بنائي العمل مرة أخرى! أعتقد أنهم أوقفوا تشغيله وتشغيله في النهاية
هيوستن ، إنها تعمل هنا.
يعمل الآن بالنسبة لي أيضًا
node_modules للبيع. مساء لي لعروض جيدة: د
ربما يكون أسوأ شيء يمكنك كتابته في مجتمع مفتوح المصدر 😋
يبدو جيدًا أنه تم إصلاحه. يعمل في منطقة سنغافورة AWS
يعمل الآن!
تعمل الآن منطقة شمال فيرجينيا AWS
تعمل الان - منطقة 51
انه يعمل الان. بفضل فريق دعم NPM. سناء الكل <3
أراك لاحقًا في موضوع آخر ، أشخاص الإنترنت
أيها السادة ، كان من دواعي سروري!
أغلقها ، ربما؟
رجوع إلى الإنترنت في بلغاريا. شكرا يا رفاق!
هل يمكننا فعل هذا مرة أخرى
اسمي جيف
CI جاهز وتشغيل .. الآن إلى العمل .. لقد كان شرفًا
ساعدني هذا الانقطاع في تبسيط Dockerfile الخاص بي ، بدون مزحة.
شكرا لمسك اليدين.
الرجاء قفل هذه المشكلة ، لا يمكنني إعادة أي شخص إلى العمل بمن فيهم أنا
المملكة المتحدة هنا. كان يواجه مشكلة 429 عند تثبيت next.js ولكن رد فعل وكون رد فعل دوم كان جيدًا. كل شيء على ما يرام الآن على ما يبدو
مرحبًا فريق npm
هل تسمح بإعادة تشغيل جهاز الكمبيوتر الخاص بك من فضلك؟
تحياتي الحارة
لقد فعلوها أخيرًا !!! ثلاث مرات...
العمل الان في السويد 🇸🇪!
نراكم جميعًا في المرة القادمة عندما يكون NPM غير متوفر!
على الأقل يبدو أن جيثب متاح للغاية
يحاول GitHub التحديث المباشر لردود الرموز التعبيرية وهو يشبه الألعاب النارية للرموز التعبيرية.
العدد التالي: GitHub معطل: D
السبب: عدد كبير جدًا من الطلبات في الخطأ NPM # 837836
Success! created app at C:/XXXX
"المراقبة - أبلغنا شريكنا في توصيل المحتوى أنه نفذ إصلاحًا. نحن نراقب."
مشكلة Cloudflare؟
غراند رابيدز ، ميتشيغن هنا
هذا أول تعليق لي على Github مع الكثير من ردود الفعل - أحبك جميعًا ❤️ أراك قريبًا
تحرير: الكثير من التصويتات السلبية * * استمر في ذلك! أسفل يعني ..
رالف حطم الإنترنت!
فقط أريد أن أكون جزءًا من هذا. عمل جيد NPM
لذلك نحن جميعا نصنع الميمات الآن؟
أخيرا العمل !!!
(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 ليس شيئًا سيئًا أن تبتسم وتضحك ، لم تكن تضيع الوقت أبدًا ، ستحسن إنتاجيتك في الواقع ، الميمات والنكات تجعلنا بشرًا بدلاً من مجرد آلات تعمل ، حتى ديترويت أصبحت إنسانًا!
مرحبا من نفس GALARETKA !!
مرحبًا من الإنترنت!
على الأقل قد تصبح قريبًا القضية الأكثر تعليقًا.
اقتراح: إنشاء إدخال لـ "خدمات CDN" في صفحة حالة npm ، حيث يبدو أن المشكلة الفعلية كانت مع Cloudflare
https://github.com/npm/cli/issues/836#issuecomment -586992790
cmcarey ليس شيئًا سيئًا أن تبتسم وتضحك ، لم تكن تضيع الوقت أبدًا ، ستحسن إنتاجيتك في الواقع ، الميمات والنكات تجعلنا بشرًا بدلاً من مجرد آلات تعمل ، حتى ديترويت أصبحت إنسانًا!
ليس هذا هو الوقت أو المكان لذلك. سيل من التعليقات مثل التي نراها هنا يعقد مهمة الفرز للعثور على التفاصيل التي قد تساعد الأشخاص الذين يمكنهم بالفعل حل المشكلة.
العمل الآن في البرازيل: البرازيل :!
أندريه من أمن npm هنا. أبلغنا شريكنا في توصيل المحتوى أنه قد نفذ إصلاحًا. ونحن مستمرون في مراقبة الوضع. يمكنك العثور على مزيد من المعلومات في صفحة الحالة الخاصة بنا: https://status.npmjs.org/.
إغلاق المشكلة ولكن إذا كان لديك أي مشكلة ، فيرجى الاتصال بـ support@npmjs.com
aeleuterio أي فرصة يمكننا الحصول على تشريح لهذا؟
نعمل الآن!
يا الهي. لا تفعل ذلك مرة أخرى! أبدا! )))))
إنه لا يعمل مرة أخرى. أعتقد ، لم يتم إصلاح المشكلة من قبل شركائك.
cmcarey ليس شيئًا سيئًا أن تبتسم وتضحك ، لم تكن تضيع الوقت أبدًا ، ستحسن إنتاجيتك في الواقع ، الميمات والنكات تجعلنا بشرًا بدلاً من مجرد آلات تعمل ، حتى ديترويت أصبحت إنسانًا!
تغرق الميمات والنكات على المحادثة التي قد تكون حيوية لإصلاح المشكلة مهما كانت.
تعمل الان 😓
تغرق الميمات والنكات على المحادثة التي قد تكون حيوية لإصلاح المشكلة مهما كانت.
في الواقع ، كان علي التمرير عبر حوالي 200 ميم فقط لرؤية تحديث الحالة الفعلي من NPM.
لمعلوماتك فقط: كان الغزل قادرًا على تحميل الحزم دون تشغيل حد السعر: 1)
الغزل رائع! (و أمن)
مرحبًا واعتذارًا وافرًا من Cloudflare ، ما بعد الوفاة من نوع ما مباشرة في تعليقات القضية.
أنا المدير الهندسي لفريق حماية DDoS وهذا الصباح في الساعة 11:06 بالتوقيت العالمي المنسق ، قمنا بتعديل قاعدة أثرت على إحدى إشاراتنا. تتعلق الإشارة برأس مُحيل HTTP ، ولدينا جزء من الكود يبحث في رؤوس المُحيل غير الصالحة. في هذه الحالة قمنا بتعديله ليشمل ليس فقط "هراء واضح" ولكن "أي شيء لا يتوافق مع مواصفات HTTP" ... أي هل المُحيل هو URI؟ إذا لم يكن كذلك فإنه يساهم في المعرفة حول حركة المرور السيئة.
إذن ... لماذا أثر هذا على npmjs.org؟ اتضح أن الكثير من حركة مرور NPM ترسل المرجع كـ "تثبيت" وهو غير صالح وفقًا لمواصفات HTTP. نظرًا لأن NPM هو أيضًا موقع يتاجر به بشكل كبير ، فقد أدى ذلك إلى قيام أنظمة DDoS باختيار هذا الأمر ومعالجة حركة المرور على أنها تدفق HTTP وتحديد أنه يجب تطبيق حد المعدل.
عندما لاحظنا أن NPM كان يشهد زيادة في HTTP 429s (كما رأينا على Twitter) ، اتصلنا بـ NPM وبدأنا تحقيقًا داخليًا. بمجرد أن حددنا السبب الأساسي ، قمنا بإعادة التغيير ، والذي كان في الساعة 13:00 بالتوقيت العالمي المنسق.
سنلاحظ أن NPM وموقع واحد آخر يستخدمان المرجع لأغراض خارج مواصفات HTTP وسنقوم بتحديث أنظمتنا لضمان عدم حدوث ذلك مرة أخرى. بالإضافة إلى ذلك ، سنقوم بتحسين مراقبتنا للتغييرات من هذا النوع حتى نتمكن من اكتشاف التأثير عاجلاً والتراجع تلقائيًا.
شكرا على الشرح @ buro9
نأمل أن يكون لديك بعض الاختبارات الصريحة لـ NPM ، بالنظر إلى الأهمية لمجتمع المطورين.
لم نتمكن (والعديد من الآخرين أنا متأكد) من نشر عدد من المشاريع لمدة ساعتين هذا الصباح ، خلال ساعات العمل في الاتحاد الأوروبي. يجب أن يكون هذا أيضًا بمثابة تذكير لنا جميعًا بأن يكون لدينا تدابير استمرارية أفضل عند حدوث هذه الأحداث.
في رأيي ، سيكون من الأفضل التأكد من أن الطلبات الواردة من مثبت NPM تتوافق مع مواصفات HTTP.
في رأيي ، سيكون من الأفضل التأكد من أن الطلبات الواردة من مثبت NPM تتوافق مع مواصفات HTTP.
يجب أن يكون المرجع فارغًا ، ويجب أن يكون المثبت وكيل المستخدم
شكرًا ، أنا قادر على تنزيل جميع تبعياتي البالغة 5464950 كل 15 دقيقة لبناء آخر مرة أخرى.
@ buro9 سنكون ممتنين إذا قمت بالرد على
فيما يتعلق بالإشارة إلى مواصفات HTTP ، بالنظر إلى أن هذا السلوك ساري المفعول منذ سنوات ، أود أن أطلب مراجعة التغيير الذي تم دفعه في CF اليوم والذي تسبب في نتيجة "التوافق مع مواصفات HTTP" المفاجئة؟
سأطلب مرة أخرى من فضلك المتابعة بتذاكرنا المفتوحة وإبلاغنا مرة أخرى في ما بعد الوفاة لآخر عطلتي انقطاع ، نفضل أن نتعلم عن هذا منك مباشرةً ، بدلاً من رؤيته في مشكلة على github. .
مرحبًا واعتذارًا وافرًا من Cloudflare ،
لا أعتقد أنه عليك الاعتذار. من الواضح أن npm أفسدت حقل المُحيل ولم تفعل شيئًا خاطئًا. لمجرد أنه تم العمل بالصدفة في الماضي لا يعني أنه يجب أن يظل على هذا النحو. من يضمن عدم حدوث شيء كهذا مرة أخرى في المستقبل ، لأن شخصًا ما يحترم المواصفات؟
من الواضح أن npm أفسدت حقل المُحيل ولم تفعل شيئًا خاطئًا. لمجرد أنه تم العمل بالصدفة في الماضي لا يعني أنه يجب أن يظل على هذا النحو.
هذا يسمى فواصل BC ويجب ألا يحدث في نفس "الإصدار".
من الواضح أن npm أفسدت حقل المُحيل ولم تفعل شيئًا خاطئًا. لمجرد أنه تم العمل بالصدفة في الماضي لا يعني أنه يجب أن يظل على هذا النحو.
هذا يسمى فواصل BC ويجب ألا يحدث في نفس "الإصدار".
نعم أعطيك هذه النقطة. لكن نأمل ألا يكون القرار "سيبقى إلى الأبد على هذا النحو ويجب على الجميع الامتثال".
(...)
قمنا بتعديل قاعدة أثرت على إحدى إشاراتنا. تتعلق الإشارة برأس مُحيل HTTP ، ولدينا جزء من الكود يبحث في رؤوس المُحيل غير الصالحة.
(...)
إذن ... لماذا أثر هذا على npmjs.org؟ اتضح أن الكثير من حركة مرور NPM ترسل المرجع كـ "تثبيت" وهو غير صالح وفقًا لمواصفات HTTP.
ألا يسمح رأس Referer
باستخدام 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
بدون التحقق من وجود URI في الخادم ، كيف يمكنك التمييز بين النص التعسفي المشفر url المشفر عن URI الجزئي الفعلي؟
إذا تابعت خصومات المواصفات ، فيمكن أن يكون رأس install
Referer
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 هذا عند الطلب (ثم تخزنه مؤقتًا) ، أم أنها مرة أخرى عبارة عن "whoopsie" للتصوير سريع وفضفاض؟
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 جزئي مثل ìnstall` ، لكن ماذا عن هذا ، بضعة أسطر أسفل النص المقتبس:
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 ينتهك المواصفات؟ بالتأكيد.
هل يستطيع التليف الكيسي اكتشاف ذلك بشكل صحيح؟ فقط عن طريق إجراء فحص صريح لـ URI. هل يقوم CF بإجراء هذا الفحص؟ لا أعرف ... حتى الآن (لكن قد أقوم بإعداد ساحة اختبار ، من أجل ذلك فقط).
ومع ذلك ، بدون مزيد من المعلومات ، يجب أن أفترض أن التليف الكيسي قام مرة أخرى بما يفعله التليفزيون ولأسباب لا أساس لها من الصحة كسر جزءًا من الإنترنت ... مرة أخرى.
من الجدير بالذكر أن هناك القليل جدًا مما يمكن لـ CDN القيام به والذي من شأنه تحسين خدمتهم بشكل مفيد ولا ينطوي على مخاطر "كسر جزء من الإنترنت". طبيعة الخدمة التي تقدمها CF ، وشعبيتها التي تستحقها عن جدارة باعتبارها واحدة لتقديم تلك الخدمة ، تعني أنهم يلعبون دائمًا بالنار ، ومن المحتمل أن يزعجوا الكثير من الناس عندما يجعلونهم يسامحون ويحسنون النية اخطاء.
بعد أن فعلت هذا الشيء npm لبعض الوقت الآن ، ليس لدي نقص في التعاطف مع موقفهم ، وأعتقد أنه من غير المناسب تكديس الازدراء عليهم بسبب هذا. إنهم يقومون بعمل رائع ، حيث يحمون npm (وبالتالي ، مجتمع JS بأكمله) من الكثير من الجهات الفاعلة السيئة وانقطاع التيار ، ويجعلون جميع بناياتنا أسرع وأكثر موثوقية. نحن نحب ونقدر Cloudflare. لذلك دعونا نكون طيبين هنا.
ومع ذلك ، أعتقد أن npm لا ينتهك الحرف ولا روح مواصفات HTTP ذات الصلة في استخدامنا لعنوان Referer للإشارة إلى الأمر الذي تسبب في تقديم طلب معين. آمل أن يجد أي شخص يتابع هذه المناقشة التدفق التالي لتحذلق HTTP مفيدًا أو ممتعًا على الأقل. إذا لم يكن هذا هو الشيء الذي تفضله ، يرجى القيام بشيء آخر ، فلن يكون لديك وقت ممتع لقراءة هذا :)
نشر CF تغييرًا تعامل مع الاستخدام غير المعتاد لرؤوس HTTP كإرشاد ليتم وضع علامة عليه كطلب ضار. عند التعامل بشكل أساسي مع حركة المرور من متصفحات الويب ، سيكون رأس المرجع دائمًا إما مفقودًا ، أو about:blank
، أو عنوان URL مؤهل بالكامل. لذا فإن رأس مثل Referer: install
غريب.
ومع ذلك: المواصفات تقول "URI". لا تقول "URL". بالتأكيد لا يقول "عنوان URL مؤهل بالكامل". نظرًا للاستخدام الدقيق عادةً لـ "URI" مقابل "URL" في وثائق IETF ، ومناقشات تقسيم الشعر التي غالبًا ما تنشأ حول مسائل مثل هذه ، وحقيقة ظهور Referer لأول مرة في rfc1945 (على الرغم من أنه كان قيد الاستخدام قبل ذلك بوقت طويل) ، _ و_ أن مواصفات HTTP قد احتفظت بـ "URI" من خلال جولات متعددة من التحديثات والمراجعات ، يجب أن أستنتج أن _intent_ هنا هو للمراجع ليكون عنوان URI بدلاً من أن يكون عنوان URL في حد ذاته ، بالإضافة إلى حرف المواصفات.
عنوان URL وعنوان URL ليسا نفس الشيء. تم تحديث كلا من RFCs المرتبطين وقديمة (جزئيًا) منذ إنشائها من قبل RFCs اللاحقة ، وأنا أشجع بشدة أي شخص لا يزال يقرأ في هذه المرحلة لمتابعة الروابط والتعرف على كيفية تغيير موقع الموارد الموحدة ومعايير التعريف والتوسع فيها بشكل دقيق وطرق مثيرة للاهتمام على مر السنين.
خلاصة القول هي: لا يحتاج رأس 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 هذا أن يتضمن رأس مرجع +12345678901
. إذا كان الخادم يتوقع الحصول على طلبات من نظام الهاتف هذا ، فيمكنه استنتاج المخطط بناءً على السياق.
هذا هو بالضبط ما يحدث مع عميل npm وسجل npm. يرسل رأس مرجع يحتوي على الأمر الجاري تشغيله. (عندما يحتوي الأمر على وسيطات موضعية ، فإن أي شيء يحتوي على /
أو \
يتم تنقيحه ، حيث قد يكون هذا مسارًا خاصًا ، أو عنوان url ، أو git repo.) يعد هذا من الناحية اللغوية والتركيبية صحيحًا ومناسبًا استخدام رأس HTTP Reference في مثل هذا السياق غير المتعلق بالمتصفح ، وإنني أعتقد بصدق أنه بعد 30 عامًا من المراجعة والتحليل والمراجعة من قبل IETF ، من خلال إصدارات متعددة من هذه المواصفات ، إذا لم يكن هذا هو القصد من مواصفات المرجع ، كان سيقول "URL" بدلاً من "URI".
وللتكرار فقط ، أنا بالتأكيد لا أعتقد أن Cloudflare ممثل سيء هنا ، وأشعر بخيبة أمل لرؤية مدى سرعة الكثير من الأشخاص في "اختيار جانب" كما لو كانت npm vs Cloudflare في معركة حول هذا. لقد تأثرنا بخطأ ارتكبوه ، لكننا في بعض الأحيان نتأثر بالأخطاء التي يرتكبونها ، لأننا عملاء لهم ، وبالطبع سيرتكبون أخطاء من وقت لآخر ، لأن البشر والآلات ليست مثالية. هذا فقط كيف العالم. بشكل عام ، نحن سعداء جدًا بالاستجابة التي تلقيناها ، وقد قمنا جميعًا بتحسين أنظمة المراقبة والاستجابة في ضوء هذا الفواق.
FWIW ، "المُحيل" لم يتم تعريفه على أنه URI. راجع المواصفات: https://greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.5.2 . إنه مرجع URI. سيتم تفسير "تثبيت" على أنه مسار ، بالنسبة إلى URI للطلب.
reschke حتى في هذه القراءة ، لا تزال صالحة تمامًا.
هذا هو: من https://registry.npmjs.org/foo
، مع Referer: install
، سيكون المرجع الذي تم حله بالكامل هو 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 الرؤوس غير المؤهلة تمامًا.
ومع ذلك ، في ضوء ذلك ، قد يكون من المفيد وضع مخطط على رؤوس Referer التي يرسلها npm cli. سيتعين علينا البحث في هذا الأمر لمعرفة ما إذا كان ذلك يجعل من المرجح أكثر أو أقل أن الطلبات سيتم إفسادها بواسطة الوكلاء. هناك خيار آخر ، بالطبع ، هو قبول أن بعض الوكلاء سيكونون أكثر من اللازم في التصفية مما ينتج عنه بيانات أقل مثالية قليلاً ، ولكن استخدم رأسًا مخصصًا بمعنى أكثر تحديدًا ، مثل npm-command: install
بدلاً من ذلك. نقوم بهذا من أجل رأس npm-session
لتجميع الطلبات معًا ، ووجدنا حالات لا نحصل فيها على هذا الرأس المخصص ، على الرغم من أن وكيل المستخدم يشير إلى أنه عميل npm "حقيقي" (أو في الأقل ، يدعي أنه).
التعليق الأكثر فائدة
مرحبًا واعتذارًا وافرًا من Cloudflare ، ما بعد الوفاة من نوع ما مباشرة في تعليقات القضية.
أنا المدير الهندسي لفريق حماية DDoS وهذا الصباح في الساعة 11:06 بالتوقيت العالمي المنسق ، قمنا بتعديل قاعدة أثرت على إحدى إشاراتنا. تتعلق الإشارة برأس مُحيل HTTP ، ولدينا جزء من الكود يبحث في رؤوس المُحيل غير الصالحة. في هذه الحالة قمنا بتعديله ليشمل ليس فقط "هراء واضح" ولكن "أي شيء لا يتوافق مع مواصفات HTTP" ... أي هل المُحيل هو URI؟ إذا لم يكن كذلك فإنه يساهم في المعرفة حول حركة المرور السيئة.
إذن ... لماذا أثر هذا على npmjs.org؟ اتضح أن الكثير من حركة مرور NPM ترسل المرجع كـ "تثبيت" وهو غير صالح وفقًا لمواصفات HTTP. نظرًا لأن NPM هو أيضًا موقع يتاجر به بشكل كبير ، فقد أدى ذلك إلى قيام أنظمة DDoS باختيار هذا الأمر ومعالجة حركة المرور على أنها تدفق HTTP وتحديد أنه يجب تطبيق حد المعدل.
عندما لاحظنا أن NPM كان يشهد زيادة في HTTP 429s (كما رأينا على Twitter) ، اتصلنا بـ NPM وبدأنا تحقيقًا داخليًا. بمجرد أن حددنا السبب الأساسي ، قمنا بإعادة التغيير ، والذي كان في الساعة 13:00 بالتوقيت العالمي المنسق.
سنلاحظ أن NPM وموقع واحد آخر يستخدمان المرجع لأغراض خارج مواصفات HTTP وسنقوم بتحديث أنظمتنا لضمان عدم حدوث ذلك مرة أخرى. بالإضافة إلى ذلك ، سنقوم بتحسين مراقبتنا للتغييرات من هذا النوع حتى نتمكن من اكتشاف التأثير عاجلاً والتراجع تلقائيًا.