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
éã§ç°ãªããŸã
ããã¯ãAWSã§å®è¡ãããŠããCIã¿ã¹ã¯ã®ããããã§èŠãããŸã
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
äžå
åãããã€ã³ãã©ã¹ãã©ã¯ãã£ïŒãïŒ
ïŒæ»åŸãåŸ
ã£ãŠããããæ¯ãæ¢ããŠããªã...ïŒ
ïŒæ€èšŒæžã¿ã®ïŒãããªãã¯ã¬ãžã¹ããªãã©ãŒã®ãªã¹ãããããšäŸ¿å©ã§ãã ããã€ãèŠã€ããŸããããä¿¡çšã§ããŸããã
ããŒã«ã«ã§ãCircleCIã§ãåã
CircleCIãšããŒã«ã«ã䜿çšããŠåãããšã確èªãã
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ã«ãããã€ãããšãã«åããšã©ãŒãçºçããŸãã
AWSCodeBuildãšnpmi -gaws-cdkã§ãåãã§ã
28 | npm ERRïŒ 429ãªã¯ãšã¹ããå€ãããŸã-GEThttps
äžè¬çãªãµãŒããŒã®åé¡ïŒ
ç§ãåãåé¡ãæ±ããŠããŸã
npm ERRïŒ ã³ãŒãE429
npm ERRïŒ 429ãªã¯ãšã¹ããå€ãããŸã-GEThttps
ããã±ãŒãžãããŒã«ã«ã«ã€ã³ã¹ããŒã«ããå Žåãåæ§ã§ãã
ã¹ãŠã§ãŒãã³ã
`` `npm ERRïŒ ã³ãŒãE429
npm ERRïŒ 429ãªã¯ãšã¹ããå€ãããŸã-GEThttps
ãããç§ã¯ããããã©ãã¹ã§ã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-bââlock-scoping /-/plugin-transform-bââlock-scoping-7.8.3.tgz
--2020-02-17 11ïŒ59ïŒ28-- https://registry.npmjs.org/@babel/plugin -transform-bââlock-scoping /-/ plugin-transform-bââlock-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 OK
é·ãïŒ6735ïŒ6.6KïŒ[ã¢ããªã±ãŒã·ã§ã³/ãªã¯ãããã¹ããªãŒã ]
ä¿åå
ïŒ 'plugin-transform-bââlock-scoping-7.8.3.tgz'
plugin-transform-bââlock-scoping-7.8.3.tgz 100ïŒ [================================== ================================================= ============================================>] 6.58K- .-0ç§ã§KB /ç§
2020-02-17 11:59:28ïŒ95.5 MB / sïŒ-'plugin-transform-bââlock-scoping-7.8.3.tgz'ãä¿åãããŸãã[6735/6735] `` `
ãã®åé¡ã«ãçŽé¢ããŠããŸãããããã¯ã°ããŒãã«ãªãã®ã§ããããããšãå°åã«é¢é£ããŠããŸããïŒ å»å¹Žãã€ãã§ã䌌ããããªãã®ããããŸããã
ããã§ãGitlabCIã§å®è¡ããŠããŸã
ãããªã©ã³ãã§ãåãã§ãã ïŒã¢ã€ã«ã©ã³ãã®AWS CodebuildïŒ
ãã·ã¢ãã
ããã€ã¹ã¿ã³ããŒã«
ããã¯ãregistry.npmjs.orgãµã€ãã®Cloudflareé¢é£ã®åé¡ã®ããã§ãã
æŽæ°æã«æ¬¡ã®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 Codebuildus-east-1ã§ãåãåé¡ãçºçããŠããŸãã çŽ30ååãŸã§ããŒã«ã«ã§åå²ãããŠããŸããããçŸåšã¯æ©èœããŠããŸãïŒããŒã«ã«ã§ã¯ã¢ã€ã«ã©ã³ãããïŒ
ããã¯ãregistry.npmjs.orgãµã€ãã®Cloudflareé¢é£ã®åé¡ã®ããã§ãã
cloudflareã䜿çšããŠããªããã©ãŒã¯ãããŸããïŒ
åãåé¡ïŒ ãã«ããã€ãã©ã€ã³ã倱æããŠããŸã:(
åãïŒ npm ERR! code E429
ããã§ãããŸãã ã€ã³ã¿ãŒããããã§ããŸããã ã¿ãªãããããããªãã
ç§ã¯æŒé£ããšãã€ããã§ãããããŠç§ã1æé以å ã«æ»ã£ããšãã«ãããä¿®æ£ãããããšãé¡ã£ãŠããŸãã
ããã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
åãã ããã±ãŒãžã¯ç°ãªããŸãããä»æ¥ã®åããããnpminstallãšnpmciãå®è¡ãããªã¯ãšã¹ãã429件å€ãããŸã
:(
ç§ãã¡ã¯ä»æããã¿ããªããŠã³ããŠããŸãã 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 ïŒ
# npm
npm config set registry https://npm.open-registry.dev
# yarn
yarn config set registry https://npm.open-registry.dev
è€æ°ã®ç°å¢ïŒtravisãããŒã«ã«ããµãŒããŒïŒã§åãåé¡ãçºçããŠããŸãã
NPMïŒã»ãŒå®ç§ãªãã©ãŒ
NPMïŒæææ¥ã¯å®è¡ãããŸãã
NPMïŒæææ¥ã¯åé¡ãããŸãã
Gitlabã©ã³ããŒå ã®åãåé¡
herokuã§ãã«ããè©Šãããšãã«åãåé¡ãçºçããŸããã CF-ãšã©ãŒã³ãŒã1015ã
ãã®ãŠã§ããµã€ãïŒregistry.npmjs.orgïŒã®ææè ã¯ãããªãããã®ãŠã§ããµã€ãã«ã¢ã¯ã»ã¹ããããšãäžæçã«çŠæ¢ããŠããŸãã
npm installã³ãã³ããå®è¡ãããšã次ã®ãšã©ãŒãçºçããŸããããã®ãŠã§ããµã€ããžã®ã¢ã¯ã»ã¹ããã "ã
ç§ã¯ãã£ãªãã³ã®ã»ãåºèº«ã§ãã ããã¯CloudFlareã®åé¡ã§ããããããšãNPMã§ããïŒ
ãã®ãŠã§ããµã€ãïŒregistry.npmjs.orgïŒã®ææè ã¯ãããªãããã®ãŠã§ããµã€ãã«äžæçã«ã¢ã¯ã»ã¹ããããšãçŠæ¢ããŠããŸãã
çãããããã楜ãããããããŸãããã人ã ãåã³åãå§ããããšãã§ããããã«ããããå®éã«åœ¹ç«ã€ãã®ã«å¶éããŸãããã
ãã®åé¡ã¯ããªãåºãŸã£ãŠããããã§ãã誰ãããããã¯Xã§ç§ã«èµ·ãã£ãŠããããšæçš¿ããã®ã§ã¯ãªããNPMããäœããèããããŸã§ãã£ãããšãã³ã°ã¢ããããã®ã¯ã©ãã§ããããã ãŸãã¯ã圱é¿ãåããå Žåã¯ã³ã¡ã³ãã+1ã§ããŸãã
NPMïŒããã±ãŒãžãããŒãžã£ãŒã§ã¯ãããŸãã
ããã¹ãŠã§ãŒãã³ã§ãåæ¢ããŠããŸãððââ
ãã®åé¡ã¯ããªãåºãŸã£ãŠããããã§ãã誰ãããããã¯Xã§ç§ã«èµ·ãã£ãŠããããšæçš¿ããã®ã§ã¯ãªããNPMããäœããèããããŸã§ãã£ãããšãã³ã°ã¢ããããã®ã¯ã©ãã§ããããã ãŸãã¯ã圱é¿ãåããå Žåã¯ã³ã¡ã³ãã+1ã§ããŸãã
ãããããŒã ãšåå©ã®ããã®åœ¹ã«ç«ããªãã³ã¡ã³ã
AWSãã«ãã§åãåé¡ãçºçããŠãã
ããã¯ã2åç®ã®æŒé£ã«åºãããããšãã§ãããšããæå³ã§ããïŒ
CircleCiãã«ãã§åãåé¡ãçºçããŠãã
Githubã¢ã¯ã·ã§ã³ã§åãåé¡ãçºçããŠããŸãïŒ
https://github.com/verdaccio/verdaccio/ãã€ã³ã¹ããŒã«ããæé
ãããŒãã³ã¡ã³ãã®ããŒã XD
ã¿ããªåãããŒãã«ä¹ã£ãŠãã¹ãã¬ã¹ãæããªããæãåãã¡åãã®ã¯çŽ æŽãããããšã§ãã...ãäºãã«ãç§ãããšèšãã®ããããŠãããã§ããïŒ
ããŒã ã¯ãã€ã§ãæè¿ã§ãããšããã§ïŒ
ããã¯ãä»ã®èª°ãã®ã³ã³ãã¥ãŒã¿ã«é床ã«äŸåããŠããçµæ@phaberestããªãã¯ç¡æå³ã§ãç§ãç¡æå³ã§ãïŒ-}
åãïŒ
NPMã¯ãæ®ãã®æ¥ã¯äŒãããšãã§ãããšèšã£ãŠãããŸããã
ããã§åãåé¡
ããã¯ãŸã é©çšãããŸããïŒ
åã
çŸåšã®Npmæ¬éšïŒ
ç§ã¯ä»npmjs就任#npm pic.twitter.com/wZy0Bo3PM8
âããã¯ã»ãã¢ã³ãïŒ@thehappypenguinïŒ 2020幎2æ17æ¥
åé¡ãä¿®æ£ãããŸãã
https://status.npmjs.org/ã¯ç·ã«ãªããŸã§ã§ãð
NPMïŒ
NPMããã±ãŒãžãã³ãããŠã€ã«ã¹ã«ææããŠãããšããåããããŸã
NPMã¬ãžã¹ããªã®åæ¢ãåå ã§ã¢ããªããããã€ã§ããªãå Žåã«ãåæ§ã®åé¡ãä¿è·ããããã«ãç¬èªã®npmã¬ãžã¹ããª/ãããã·ãã€ã³ã¹ããŒã«ããããšã匷ããå§ãããè¯ãäŸã ãšæããŸãã
NPMãå©çšå¯èœã«ãªããŸã§åŸ ã£ãŠãããšã
NPMã¯ç§ãã¡ã«äŒæ©ããšã£ãŠã»ãã
ãåãããšæžãã®ã¯è©äŸ¡ãäœãã§ãã
ã«ã·ãªFX-991ESPLUSã§ãåãã§ã
NPMïŒã§ã¯ãããŒã ãæçš¿ããŠãã ããïŒ
ããäžåœãããåãã§ãã
ãã«ããµãŒããŒïŒTeamcityïŒããã³ããŒã«ã«ã§npminstallãå®è¡ããå Žåãåãåé¡ãçºçããŸãã
ç§ã¯ä»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
ãã©ã«ããå
±æããŠãã ããã
ãã£ã¡ãäžç·
ãAllSystemsOperationalã-æ倧ã®å
äžå®å®ã§ããæ¹åãããŠããŸãããïŒ
NPMïŒã¢ãã¯ãããã·ã¥ããªãã§ãã ãã
ããªãããããŠãã@ anant-K-ã·ã³ã¯ããããŒã ãïŒ ;-)çŸåšãããã³ããšã³ãã³ãã¥ããã£ã§ã¯å€ãã®äººãåå ããŠããŸãã
...ãããŠãå¿ èŠãªãšãã«ãã®ããŒã«ã«/ãµã€ãããŒã«ã«ãã£ãã·ã³ã°npmãããã·ã¯ã©ãã«ãããŸããïŒ
https://status.npmjs.org/ã¯éåžžã«äŸ¿å©ã§ã...
誰ãã倩åœã®ããã«angularjsnode_modulesãã©ã«ããŒãã°ãŒã°ã«ãã©ã€ãã«ã¢ããããŒãããå¿ èŠããããŸã
çŸåšãã客æ§ãšã®ããŒãã£ã³ã°ã«åå ããŠããããã¢ãè¡ãããšãã§ããŸããïŒ[
FeelsBadManãå šäžçã圱é¿ãåããã»ã©æªãããã¢ã®åãã
圌ãã¯ã¹ããŒã¿ã¹ããŒãžãæŽæ°ããŸããã
npm WARN deprecated request@2.88.2 ïŒãªã¯ãšã¹ãã¯éæšå¥šã«ãªããŸãã//github.com/request/request/issues/3142ãåç
§ããŠãã ããã
npm ERRïŒ ã³ãŒãE429
npm ERRïŒ 429ãªã¯ãšã¹ããå€ãããŸã-GEThttps
npm ERRïŒ ãã®å®è¡ã®å®å
šãªãã°ã¯ã次ã®å Žæã«ãããŸãã
npm ERRïŒ CïŒ\ Users \ Lenovo \ AppData \ Roamingnpm-cache_logs \ 2020-02-17T12_50_04_887Z-debug.log
ç§ã¯ããŒã ã®ããã ãã«ããã«ããŸã
ãããç§ãã¡ã¯ãã®GitHubã®åé¡ã§ã¯ãªããããããã®Slack / Discord / IRCãã£ãã«ã«ããŒã ãšãžã§ãŒã¯ãä¿æã§ããŸããïŒ åœŒãã¯ãã®åé¡ãèªèããŠãããStatusPageãæŽæ°ããŸããã
npm ERRïŒ ã³ãŒãE429ã ããã«ïŒ
ãAllSystemsOperationalã-æ倧ã®å
jq -r '.dependencies * .devDependencies | keys[]' package.json | xargs -L 1 -I {} sh -c "echo installing {}; npm i {}; sleep 10"
ãã¹ãŠã®ããã±ãŒãžãäžåºŠã«ã€ã³ã¹ããŒã«ããªããŠãæ©èœããããã§ã...å¿ æ»ã«ãªã£ãŠããå Žåã¯æ©èœããŸãããããªãé ãã§ã...
äžéšã®ãŠãŒã¶ãŒã®403/429ãšã©ãŒ
ãã¹ãŠã¯ã©ãã§ããïŒ
ããã«ã¡ã¯ãããã«é¢ããæŽæ°ã¯ãããŸããïŒ
E429
ãããïŒãªã©ã³ãïŒ
AzureDevOpsã«ãã£ãŠããªã¬ãŒããããªã³ãã¬ãã¹ãã·ã³ããã®æ§ç¯ã
ã€ãã«åäœãéå§ããŸããïŒã¹ããŒã¿ã¹ããŒãžðïŒ
1æéåããããŠã³ã ããã«ä¿®æ£ãèŠã€ããããšãé¡ã£ãŠããŸã
äžæçãªä¿®æ£ãæ©èœããŠããã®ã§ãpackage-lock.jsonãéããŸã
æ€çŽ¢https://registry.npmjs.org
ããŠãšçœ®ãæããhttps://registry.npmjs.com
npm ci
å®è¡ããŸã
ç§ã¯äžäººã§ã¯ãªãããšãç¥ã£ãŠè¯ãã£ãð€£
ãäžéšã®ãŠãŒã¶ãŒã«åãå ¥ããããããšåœŒãã¯èšã£ã
ããç«æã§ãåãã§ãã
ãã¹ãŠã®åžæã倱ãããŸã
npmãæ°žä¹ ã«åæ¢ããå Žåãäžçã¯ã©ããªãã§ããããããã¯å°ãèããŠããŸã
ãã®åé¡ã§ç§ã¯ç³žãè©ŠããŠã¿ãŸãã..å®éã«åããŠã ãã£ãŒã ãšããŠæ©èœããŸãïŒ
ç§ã®å æè¡åž«ã¯ãã®åºæ¥äºãäºèšããŸããã
çŸåšãã客æ§ãšã®ããŒãã£ã³ã°ã«åå ããŠããããã¢ãè¡ãããšãã§ããŸããïŒ[
ãã£ããã ããªãã¯ããªãã®é¡§å®¢ã«
npm install
ããã¢ããŠããŸããïŒ
ç§ã®ã©ããããããæã£ãŠããªãã£ããç§ã®ååã¯åœŒãããããã§ããããããšãã§ãããšèšã£ãã
Teamviewerã¯...
ããŒã ãNPMãããéãèªã¿èŸŒãŸããå Žå
ããã«ã¡ã¯npmããŒã
ã³ã³ãã¥ãŒã¿ãåèµ·åããŠããã ããŸãããïŒ
å®ãããé¡ãããŸã
åé¡ã®ããã«æ¥ãŠãããŒã ã®ããã«ãšã©ãŸã£ã
æ¬æãæãããã®ã¹ã¬ããã«ããŒã 以å€ã®ãã®ãæçš¿ããªãã§ãã ããã ããããšãããããŸããã
ããã¯äœåã§ã
npminstallãã€ãã«ç§ã®ããã«åãã
Angular9node_modulesãã£ã¬ã¯ããªã販売ããŠããŸãã DMç§ã«ããªãã®ç³ãåº
çããŠãïŒ
@npm
ãããããã»ã©é·ãã¯ãªãã®ã§ãããmemelandã¯ãããŸãã:(
ããã¯ç§ã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 ïŒ# 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ã楜ããã§ãã ããã
NPMãããŒã ã®æåºããããããã«èšã£ããšãã®ç§ã®åå¿
PCãåèµ·åããããšããŸãããããšã©ãŒããªããªãå¯èœæ§ããããŸãã ãããç§ãå©ããããã§ãã
ç§ã®ãã«ããåã³æ©èœãå§ããŸããïŒ åœŒãã¯ããããªãã«ããŠæçµçã«ãªã³ã«ãããšæããŸã
ãã¥ãŒã¹ãã³ãããã§åããŠããŸãã
ä»ç§ã«ãåããŸã
販売ã®ããã®node_modulesã è¯ããªãã¡ãŒã®ããã«ç§ãååŸïŒD
ãããããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã§æžãããšãã§ããææªã®ããšð
ããä¿®æ£ãããŠããããã§ãã ã·ã³ã¬ããŒã«ã®AWSãªãŒãžã§ã³ã§åäœããŸã
ä»ããåäœããŸãïŒ
çŸåšãããŒã¹ããŒãžãã¢AWSãªãŒãžã§ã³ã§äœæ¥äž
çŸåšäœæ¥äž-ãšãªã¢51ðœ
ä»ã¯åäœããŸãã NPMãµããŒãããŒã ã«æè¬ããŸãã ãµããã¹ãŠ<3
åŸã§å¥ã®åé¡ã§ãäŒãããŸããããã€ã³ã¿ãŒãããã®äººã
玳士ãããã¯åã³ã§ããïŒ
éããŠãå€åïŒ
ãã«ã¬ãªã¢ã§ãªã³ã©ã€ã³ã«æ»ããŸãã ããããšãã仲éïŒ
ãããããäžåºŠè¡ãããšã¯ã§ããŸããïŒ
ç§ã®ååãžã§ã
CIã皌åäž..ä»ããäœæ¥ãéå§ããŸã..ããã¯åèªã§ã
ãã®åæ¢ã¯ãåè«ã§ã¯ãªããDockerfileãåçåããã®ã«åœ¹ç«ã¡ãŸããã
æãã€ãªãã§ãããŠããããšãã
ãã®åé¡ãããã¯ããŠãã ãããèªåãå«ããŠèª°ãä»äºã«æ»ããŸãã
è±åœã¯ãã¡ãã next.jsã®ã€ã³ã¹ããŒã«æã«429ã®åé¡ãçºçããŠããŸããããreactãšreact-domã¯åé¡ãããŸããã§ããã ä»ã¯ãã¹ãŠå€§äžå€«ããã§ã
ããã«ã¡ã¯npmããŒã
ã³ã³ãã¥ãŒã¿ãåèµ·åããŠããã ããŸãããïŒ
å®ãããé¡ãããŸã
圌ãã¯ã€ãã«ãããããŸãã!!! 3å...
çŸåšã¹ãŠã§ãŒãã³ã§åããŠããŸãðžðªïŒ
次åNPMãå©çšã§ããªããšãã«ãäŒãããŸãããïŒ
å°ãªããšãgithubã¯é«å¯çšæ§ã®ããã§ã
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ããŒã ã«æè¬ããŸã
FORCEã䜿çšããNPM
ã€ã©ã³ã§ãããããŸãããé¢çœãåé¡ã§ãïŒ
npmæ¬éšã¯ä»
ããŒã ã®åãããªããšäžç·ã«ããŸããã
ðµð¹
ç¬
ããã±ãŒãžã®ã€ã³ã¹ããŒã«ã«å€±æããŸããïŒ
ãããããããç§ã¯ããŒãã£ãŒã«é ããŠæ¥ããããã¯ä»åããŠããã
ã€ã³ã¿ãŒãããã«æè¬ããŸãïŒ
ã³ã³ãœãŒã«ã¯npmã«ãã£ãŠå€æŽãããŸããïŒ100ïŒ
ãããç§ã¯ãã°ãå ±åããããã«ããã«ããŸã...
â²
â²â²
PSHH PSHH YOBA MI V EFIRE !! 1ð£ââïž
ããŒã ãã¬ã€ã³ã«ä¹ã£ãŠïŒ ð
ããŒã /ãžã§ãŒã¯ãåé¡ã«æçš¿ãããšãå®éã«åé¡ãèªã¿éãå¿ èŠããã人ã ã®æéãç¡é§ã«ãªããŸãã
ãããŠã å¿ èŠã«å¿ããŠçµµæåã䜿çšããŠåå¿ããŸãã
ç¹ã«æææ¥ã«ã¯ããããã®ãã°ãããã«å¢ããå¿ èŠããããŸãã
@cmcareyç¬é¡ã§ç¬ãã®ã¯æ±ºããŠæªãããšã§ã¯ãããŸãããæéãç¡é§ã«ããããšã¯ãããŸããã§ãããå®éã«çç£æ§ãåäžããããŒã ããžã§ãŒã¯ã«ãã£ãŠãæ©æ¢°ã
åãGALARETKAããããã«ã¡ã¯ïŒ
ã€ã³ã¿ãŒãããããããã«ã¡ã¯ïŒ
å°ãªããšããããã«æãã³ã¡ã³ãã®å€ãåé¡ã«ãªãå¯èœæ§ããããŸãã
ææ¡ïŒå®éã®åé¡ã¯Cloudflareã«ãã£ãããã§ãã®ã§ãnpmã¹ããŒã¿ã¹ããŒãžã«ãCDNãµãŒãã¹ãã®ãšã³ããªãäœæããŠãã ãã
https://github.com/npm/cli/issues/836#issuecomment -586992790
@cmcareyç¬é¡ã§ç¬ãã®ã¯æ±ºããŠæªãããšã§ã¯ãããŸãããæéãç¡é§ã«ããããšã¯ãããŸããã§ãããå®éã«çç£æ§ãåäžããããŒã ããžã§ãŒã¯ã«ãã£ãŠãæ©æ¢°ã
ããã¯ãã®ããã®æéãå Žæã§ã¯ãããŸããã ããã§èŠããããããªã³ã¡ã³ãã®æŽªæ°Žã¯ãå®éã«åé¡ã解決ã§ãã人ã ãå©ãããããããªã詳现ãèŠã€ããããã«åé¡ããä»äºãè€éã«ããŸãã
çŸåšãã©ãžã«ã§åããŠããŸãïŒbrazilïŒïŒ
ããã§npmã»ãã¥ãªãã£ããã¢ã³ãã¬ã ã³ã³ãã³ãé ä¿¡ããŒãããŒãããä¿®æ£ãå®è£ ãããããšãéç¥ãããŸããã ãããŠç§ãã¡ã¯ç¶æ³ãç£èŠãç¶ããŠããŸãã 詳现ã«ã€ããŠã¯ãã¹ããŒã¿ã¹ããŒãžhttps://status.npmjs.org/ãã芧ãã ããã
åé¡ã解決ããŸãããåé¡ãããå Žåã¯support@npmjs.comãŸã§ãé£çµ¡
@aeleuterioããã«ã€ããŠäºåŸåæãè¡ãããšãã§ããå¯èœæ§ã¯ãããŸããïŒ
ä»åããŠããŸãïŒ
ãããç¥æ§ã äºåºŠãšããªãã§ãã ããïŒ ãããŸã§ïŒ ïŒïŒïŒïŒïŒïŒ
ããã¯åã³æ©èœããŠããŸããã ç§ã¯ãåé¡ãããªãã®ããŒãããŒã«ãã£ãŠä¿®æ£ãããŠããªããšæããŸãã
@cmcareyç¬é¡ã§ç¬ãã®ã¯æ±ºããŠæªãããšã§ã¯ãããŸãããæéãç¡é§ã«ããããšã¯ãããŸããã§ãããå®éã«çç£æ§ãåäžããããŒã ããžã§ãŒã¯ã«ãã£ãŠãæ©æ¢°ã
ããããããŒã ããžã§ãŒã¯ã¯ãå®éã®åé¡ãä¿®æ£ããããã«äžå¯æ¬ ãªäŒè©±ãããæ¶ããŸãã
ä»åããŠããŸãð
ããããããŒã ããžã§ãŒã¯ã¯ãå®éã®åé¡ãä¿®æ£ããããã«äžå¯æ¬ ãªäŒè©±ãããæ¶ããŸãã
å®éãNPMããã®å®éã®ã¹ããŒã¿ã¹ã®æŽæ°ã確èªããããã«ãçŽ200ã®ããŒã ãã¹ã¯ããŒã«ããå¿ èŠããããŸããã
ãåèãŸã§ã«ãyarnã¯ã¬ãŒãå¶éãããªã¬ãŒããã«ããã±ãŒãžãããŒãã§ããŸããïŒ1ïŒ
糞ã¯çŽ æŽãããã§ãïŒ ïŒãããŠå®å šïŒ
ããã«ã¡ã¯ãCloudflareããã®å€å€§ãªè¬çœªãããªãã®åé¡ã®ã³ã¡ã³ãã«çŽæ¥ããçš®ã®äºåŸåæã
ç§ã¯DDoSä¿è·ããŒã ã®ãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒã§ãããä»æ11:06 UTCã«ãä¿¡å·ã®1ã€ã«åœ±é¿ãäžããã«ãŒã«ã埮調æŽããŸããã ã·ã°ãã«ã¯HTTPãªãã¡ã©ãŒããããŒã«é¢é£ããŠãããç¡å¹ãªãªãã¡ã©ãŒããããŒã調ã¹ãã³ãŒãããããŸãã ãã®å ŽåããæãããªãŽããã ãã§ãªããHTTPä»æ§ã«æºæ ããŠããªããã®ããå«ããããã«èª¿æŽããŸãã...ã€ãŸãããªãã¡ã©ãŒã¯URIã§ããïŒ ããã§ãªããã°ãããã¯æªããã©ãã£ãã¯ã«ã€ããŠã®ç¥èã«è²¢ç®ããŸãã
ããã§...ãªããããnpmjs.orgã«åœ±é¿ãäžããã®ã§ããïŒ å€ãã®NPMãã©ãã£ãã¯ããHTTPä»æ§ã«ããã°ç¡å¹ãªãã€ã³ã¹ããŒã«ããšããŠãªãã¡ã©ãŒãéä¿¡ããããšãå€æããŸããã NPMããã©ãã£ãã¯ã®å€ããµã€ãã§ãããããDDoSã·ã¹ãã ããããæ€åºãããã©ãã£ãã¯ãHTTPãã©ãããšããŠæ±ããã¬ãŒãå¶éãé©çšããå¿ èŠããããšå€æããŸããã
NPMã§HTTP429ãå¢å ããŠããããšã«æ°ä»ãããšãïŒTwitterã§èŠãããããã«ïŒãNPMã«é£çµ¡ããŠå éšèª¿æ»ãéå§ããŸããã æ ¹æ¬åå ãç¹å®ãããšããã«ãå€æŽãå ã«æ»ããŸãããããã¯13ïŒ00UTCã§ããã
NPMãšä»ã®1ã€ã®ãµã€ããHTTPä»æ§ä»¥å€ã®ç®çã§ãªãã¡ã©ãŒã䜿çšããŠããããšã«æ³šæãããããäºåºŠãšèµ·ãããªãããã«ã·ã¹ãã ãæŽæ°ããŸãã ããã«ããã®æ§è³ªã®å€åã«é¢ããç£èŠãæ¹åããŠã圱é¿ãããæ©ãçºèŠããèªåçã«ããŒã«ããã¯ã§ããããã«ããŸãã
説æããããšãããããŸã@ buro9
éçºè ã³ãã¥ããã£ã®éèŠæ§ãèããã°ãNPMã®æ瀺çãªãã¹ããããã€ãããããšãé¡ã£ãŠããŸãã
ç§ãã¡ïŒãããŠç§ã確信ããŠããä»ã®å€ãã®äººã ïŒã¯ãä»æãEUã®å¶æ¥æéäžã«2æéå€ãã®ãããžã§ã¯ããå±éããããšãã§ããŸããã§ããã ããã¯ãŸãããããã®ã€ãã³ããçºçãããšãã«ãããè¯ãç¶ç¶æ§ã®å¯Ÿçãè¬ããããšãç§ãã¡å šå¡ã«æãåºããããã®ãšããŠåœ¹ç«ã€ã¯ãã§ãã
ç§ã®æèŠã§ã¯ãNPMã€ã³ã¹ããŒã©ãŒããã®ãªã¯ãšã¹ããHTTPä»æ§ã«æºæ ããŠããããšã確èªããã®ãæåã§ãã
ç§ã®æèŠã§ã¯ãNPMã€ã³ã¹ããŒã©ãŒããã®ãªã¯ãšã¹ããHTTPä»æ§ã«æºæ ããŠããããšã確èªããã®ãæåã§ãã
ãªãã¡ã©ãŒã¯ç©ºçœã§ãã€ã³ã¹ããŒã©ãŒã¯ãŠãŒã¶ãŒãšãŒãžã§ã³ãã§ããå¿ èŠããããŸã
ãããã§ãå¥ã®ãã«ãã®ããã«15åããšã«ãã¹ãŠã®5464950äŸåé¢ä¿ãããŠã³ããŒãããããšãã§ããŸãã
@ buro9å ¬éã®åé¡ã«æçš¿ããåã«ããã±ãããšå éšã®ã¹ã©ãã¯
HTTPä»æ§ãææããããšã«é¢ããŠã¯ããã®åäœãäœå¹Žãç¶ããŠããããšãèãããšããã®çªç¶ã®ãHTTPä»æ§ãžã®æºæ ãã®çµæãåŒãèµ·ãããä»æ¥CFã«ã©ã®ãããªå€æŽãå ãããããã確èªããããã«ãé¡ãããŸãã
ãªãŒãã³ãã±ããããã©ããŒã¢ããããæåŸã®2åã®åæ¢ã®äºåŸåæã«ã€ããŠå ±åããŠãã ãããããã«ã€ããŠã¯ãgithubã®åé¡ã§ç¢ºèªããããããçŽæ¥ãç¥ãããã ããã ã
ããã«ã¡ã¯ãCloudflareããã®å€å€§ãªè¬çœªã
è¬ãå¿ èŠã¯ãªããšæããŸãã npmã¯æããã«ãªãã¡ã©ãŒãã£ãŒã«ããå°ç¡ãã«ããããªãã¯äœãæªãããšãããŸããã§ããã ãããéå»ã«å¶ç¶ã«ããŸããã£ããããšãã£ãŠãããããã®ããã«ãšã©ãŸãã¹ãã§ãããšããæå³ã§ã¯ãããŸããã 誰ããä»æ§ãå°éããŠããã®ã§ã誰ããã®ãããªããšãå°æ¥äºåºŠãšèµ·ãããªãããšãä¿èšŒããã®ã§ããããïŒ
npmã¯æããã«ãªãã¡ã©ãŒãã£ãŒã«ããå°ç¡ãã«ããããªãã¯äœãæªãããšãããŸããã§ããã ãããéå»ã«å¶ç¶ã«ããŸããã£ããããšãã£ãŠãããããã®ããã«ãšã©ãŸãã¹ãã§ãããšããæå³ã§ã¯ãããŸããã
ããã¯BCãã¬ãŒã¯ãšåŒã°ããåããããŒãžã§ã³ãã§ã¯çºçããªãã¯ãã§ãã
npmã¯æããã«ãªãã¡ã©ãŒãã£ãŒã«ããå°ç¡ãã«ããããªãã¯äœãæªãããšãããŸããã§ããã ãããéå»ã«å¶ç¶ã«ããŸããã£ããããšãã£ãŠãããããã®ããã«ãšã©ãŸãã¹ãã§ãããšããæå³ã§ã¯ãããŸããã
ããã¯BCãã¬ãŒã¯ãšåŒã°ããåããããŒãžã§ã³ãã§ã¯çºçããªãã¯ãã§ãã
ãããç§ã¯ããªãã«ãã®ç¹ãäžããŸãã ããããããŸãããã°ã決å®ã¯ãããã¯ãã®ããã«æ°žé ã«ãšã©ãŸãã誰ããåŸããªããã°ãªããªããã§ã¯ãªãã§ãããã
ïŒâŠïŒ
ã·ã°ãã«ã®1ã€ã«åœ±é¿ãäžããã«ãŒã«ã埮調æŽããŸããã ã·ã°ãã«ã¯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ã®ååšã調ã¹ãã«ãä»»æã®urlencodedããã¹ããå®éã®éšåURIãšåºå¥ããã«ã¯ã©ãããã°ããã§ããïŒ
ä»æ§ã®æ§é€ã远跡ãããšã 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ã®ååšããã§ãã¯ããŸããïŒãããŠããããã£ãã·ã¥ããŸãïŒããããšãããã¯ãŸãããéããŠç·©ãããã£ãšããæã¡ãŸããïŒ
@datenwolfæ§æçã«ã¯ã install
ãããªéšåçãª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".
ãã®ç§èŠã¯ããã«é©çšãããŸãã
ãã ããããã¯æåŸã®è³ªåã«ã¯çããŸããã ãããããããã¯ã¯ããå°ãè€éã§ã2ã€ã®éšåã«åãããŠããããã§ãã1ïŒhttpä»æ§ã«æºæ ããnpmã§ããã2ïŒCFã¯ä¿¡é Œã§ããæ€åºã«ãŒã«ã䜿çšããŠããŸãã ãããŠããã¶ãããã¶ããäž¡æ¹ã®è³ªåã«å¯Ÿããçãã¯ïŒãããã ããããç§ã¯ãããä»ã®äººã«ä»»ããŠè°è«ããŸãã ãäœããã«ã€ããŠææå°æ©ã«è¬çœªãããšãæœåšçãªãã°ãä¿®æ£ãããªããŸãŸã«ãªãå¯èœæ§ãããããšãææãããã£ãã®ã§ãåé¡ã®æ¬åœã®ã解決çãã«åããŠãèšèé£ãã¯å°ãäžå¹žã ã£ããããããŸããã
åæ¥ã«block mode
ãå®è£
ãã代ããã«ããã°ããã®éobserve mode
ã«ããã¯ã
@datenwolfæ§æçã«ã¯ãìnstall`ã®ãããªéšåçãª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".
ãã®ç§èŠã¯ããã«é©çšãããŸãã
ã¯ããããã§ãã ãã¶ãç§ã¯ãããå®å šã«èªèããŠããããšãååã«æ確ã«ããŠããŸããã ããããããã¯å®å šã«èŠç¹ãè¶ ããŠããŸãã
ããªãããã§ã«ææããããã«
ïŒâŠïŒãããã¯ã¯ããå°ãè€éã§ã2ã€ã®éšåã«åãããŠããããã§ãïŒ1ïŒhttpä»æ§ã«æºæ ããnpmã§ããã2ïŒCFã¯ä¿¡é Œã§ããæ€åºã«ãŒã«ã䜿çšããŠããŸãã ïŒâŠïŒ
Referer
URIã®ååšãæ瀺çã«ãã§ãã¯ããªããšãããããŒã®æå¹æ§ãå€æã§ããªãããšããã§ã«ææããŸããã
npmã¯ä»æ§ã«éåããŠããŸããïŒ æ¿ç¥ããŸããã
CFã¯ãããæ£ããæ€åºã§ããŸããïŒ URIã®æ瀺çãªãã§ãã¯ãå®è¡ããããšã«ãã£ãŠã®ã¿ã CFã¯ãã®ãã§ãã¯ãå®è¡ããŸããïŒ ãŸã ããããŸããâŠïŒãããããã®ããã ãã«è©Šéšå Žãèšçœ®ãããããããŸããïŒã
ãããããã以äžã®æ å ±ããªããã°ãCFãCFãšåãããã«åã³å®è¡ããæ ¹æ ã®ãªãçç±ã§ã€ã³ã¿ãŒãããã®äžéšãå£ãããšä»®å®ããå¿ èŠããããŸãâŠããã«ãŸãã
CDNãã§ããããšã¯ã»ãšãã©ãªãããµãŒãã¹ãææ矩ã«æ¹åãããã€ã³ã¿ãŒãããã®äžéšãå£ãããªã¹ã¯ãè² ããªãããšãèŠããŠãã䟡å€ããããŸãã CFãæäŸãããµãŒãã¹ã®æ§è³ªãããã³ãã®ãµãŒãã¹ãæäŸãããã®ãšããŠã®åœç¶ã®äººæ°ã¯ãåºæ¬çã«åžžã«ç«éã³ãããŠããããšãæå³ããä»ã®æ¹æ³ã§èš±ãããæå³ããããã®ã«ãããšãããªãå€ãã®äººã ãæ··ä¹±ãããå¯èœæ§ããããŸãééãã
ãã®npmã®ããšãããªãåãããã£ãŠããã®ã§ãç§ã¯åœŒãã®ç«å Žã«å ±æããããšã¯å°ãªããããŸããããããŠãããã軜èããã®ã¯äžé©åã ãšæããŸãã 圌ãã¯çŽ æŽãããä»äºãããŠããŠãnpmïŒãããã£ãŠJSã³ãã¥ããã£å šäœïŒãå€ãã®æªæã®ããã¢ã¯ã¿ãŒãåæ¢ããä¿è·ãããã¹ãŠã®ãã«ããã¯ããã«é«éã§ä¿¡é Œæ§ã®é«ããã®ã«ããŠããŸãã ç§ãã¡ã¯Cloudflareãæããæè¬ããŠããŸãã ã ããããã§èŠªåã«ããŸãããã
ããã¯èšã£ãŠããnpmã¯ãç¹å®ã®ãªã¯ãšã¹ããè¡ãããåå ãšãªã£ãã³ãã³ãã瀺ãããã«RefererããããŒã䜿çšããéã®æåãé¢é£ããHTTPä»æ§ã®ç²Ÿç¥ã«éåããŠããªããšæããŸãã ãã®è°è«ããã©ããŒããŠãã人ãªã誰ã§ãã次ã®å€§éã®HTTPããã³ããªãŒã圹ç«ã€ãå°ãªããšã楜ãããšæããããšãé¡ã£ãŠããŸãã ãããããªãã®ãããªãã®ã§ãªãå Žåã¯ãäœãä»ã®ããšãããŠãã ããããããèªãã®ã¯æ¥œããæéã§ã¯ãããŸãã:)
CFã¯ãHTTPããããŒã®ç°åžžãªäœ¿çšããæªæã®ããèŠæ±ãšããŠããŒã¯ããããã¥ãŒãªã¹ãã£ãã¯ãšããŠæ±ãå€æŽãå±éããŸããã äž»ã«Webãã©ãŠã¶ãŒããã®ãã©ãã£ãã¯ãåŠçããå ŽåãéåžžãRefererããããŒã¯åžžã«æ¬ èœããŠãããã about:blank
ããå®å
šä¿®é£ŸURLã®ããããã§ãã ãããã£ãŠã Referer: install
ãããªããããŒã¯å¥åŠã§ãã
ãã ããä»æ§ã«ã¯ãURIããšèšèŒãããŠããŸãã ãURLããšã¯èšããŸããã 確ãã«ãå®å šä¿®é£ŸURLããšã¯èšããŸããã IETFããã¥ã¡ã³ãã§ãURIããšãURLããé垞现å¿ã®æ³šæãæã£ãŠäœ¿çšãããŠããããšãèãããšããã®ãããªåé¡ã«ã€ããŠé »ç¹ã«è¡ããããã¢ã¹ããªããã®è°è«ãããã³ãªãã¡ã©ãŒãæåã«
URIãšURLã¯åããã®ã§ã¯ãããŸããã ãªã³ã¯ãããRFCã¯äž¡æ¹ãšããåŸç¶ã®RFCã«ãã£ãŠéå§ãããŠããïŒéšåçã«ïŒæŽæ°ãããå»æ¢ãããŠããŸãããã®æç¹ã§ãŸã èªãã§ãã人ã¯ããªã³ã¯ããã©ã£ãŠãUniform Resource Location andIdentificationæšæºãã©ã®ããã«å€æŽããã³æ¡åŒµããããã埮åŠã«åŠã¶ããšã匷ããå§ãããŸãããããŠäœå¹Žã«ãããã£ãŠèå³æ·±ãæ¹æ³ã
ã€ãŸããHTTP Referer
ããããŒã¯Uniform Resource _Locator_ã§ããå¿
èŠã¯ãªããUniform Resource_Identifier_ã§ããå¿
èŠããããŸãã ãã®èå¥åãããç¥ãããURIã¹ããŒã ã䜿çšããŠããå¿
èŠã¯ãªããçžå¯Ÿçãªåœ¢åŒã§ã¯ãªãå®å
šãªåœ¢åŒã§ããå¿
èŠããããŸããã å¯äžã®å¶éã¯ãïŒaïŒURIã§ããå¿
èŠããããïŒbïŒãªã¯ãšã¹ããã¢ãã¬ã¹ããŒã«URLãå
¥åãããªã©ãèå¥åãæããªãçŽæ¥ãŠãŒã¶ãŒãªã¯ãšã¹ããæºãããŠããå Žåã§ããçç¥ããªããã°ãªããŸããã
URIã¯ãç¹å®ã®ãããã¯ãŒã¯ãšãŒãžã§ã³ãã«ãã£ãŠããŸãã¯ç¹å®ã®ãããã³ã«ãä»ããŠãç¹å®å¯èœããã§ããå¯èœããŸãã¯è§£æ±ºå¯èœã§ããå¿ èŠã¯ãããŸããã
ãããã£ãŠã install
ã¯ããªã¯ãšã¹ããè¡ãããåå ãšãªã£ããŠãŒã¶ãŒãæäœãããã®ã®èå¥åã§ãã 圌ãã¯ãããã±ãŒãžãŸãã¯tarballã®URLãã¢ãã¬ã¹ããŒã«å
¥åããã npm install
ãšå
¥åãã次ã«_it_ãHTTPSçµç±ã§ãªãœãŒã¹ããã§ããããŸããã ãã®ãªãœãŒã¹ã解決ããããã«ãããã€ãã®HTTPãªã¯ãšã¹ããè¡ãå¿
èŠããããŸããã ã¹ããŒã ã¯æäŸãããŠããŸããããå¿
é ã§ã¯ãããŸããã ãã€ã³ã¹ããŒã«ãã¯ããªãœãŒã¹ãèå¥ããã³ã³ãã¯ããªäžé£ã®æåã§ãã ããã¯ãã¹ããŒã ã®ãªãïŒã€ãŸããå®å
šã«å®éåãããŠããªãïŒURIã§ãã
URIã®ã»ãã³ãã£ã¯ã¹ãšæ§æã¯ãããã®ã¹ããŒã ã«ãã£ãŠå®çŸ©ããããããã¹ããŒã ããªããšã install
ãç¡å¹ã§ãããšèšãããšã¯ã§ããŸããã ããšãã°ã tel:+12345678901
ã¯æå¹ãªURIïŒããã³æå¹ãªURLïŒã§ããã http:+12345678901
ã¯ããã§ã¯ãããŸããã +12345678901
ãæå¹ãªéšåURIã§ãããã©ãããç¥ãã«ã¯ãã¹ããŒã ãç¥ãå¿
èŠããããŸãã ãã®å Žæã¯ãç±³åœãªãã€ãªå·åæ±éšã®é»è©±ã·ã¹ãã ã®è©³çŽ°ã«ãã£ãŠç°ãªããŸãã ãã®çªå·ã®èªåã·ã¹ãã ãžã®é»è©±ãHTTPèŠæ±ã®äœæãããªã¬ãŒããå Žåããã®HTTPèŠæ±ã«+12345678901
RefererããããŒãå«ããããšãå®å
šã«é©åã§ãã ãµãŒããŒããã®ãããªé»è©±ã·ã¹ãã ããã®èŠæ±ãåãåãããšãæåŸ
ããŠããå ŽåããµãŒããŒã¯ã³ã³ããã¹ãã«åºã¥ããŠã¹ããŒã ãæšæž¬ã§ããŸãã
ããã¯ãŸãã«npmã¯ã©ã€ã¢ã³ããšnpmã¬ãžã¹ããªã§èµ·ããããšã§ãã å®è¡äžã®ã³ãã³ããå«ãRefererããããŒãéä¿¡ããŸãã ïŒã³ãã³ãã«äœçœ®åŒæ°ãå«ãŸããŠããå Žåã /
ãŸãã¯\
ãå«ããã®ã¯ãã¹ãŠç·šéãããŸããããã¯ããã©ã€ããŒããã¹ãURLããŸãã¯gitãªããžããªã§ããå¯èœæ§ãããããã§ããïŒããã¯ãæå³çããã³æ§æçã«æ£ãããé©åã§ãããã®ãããªéãã©ãŠã¶ã³ã³ããã¹ãã§ã®HTTPãªãã¡ã©ããããŒã®äœ¿çšãIETFã«ãã30幎éã®æ¹èšãåæãããã³ã¬ãã¥ãŒã®åŸããã®ä»æ§ã®è€æ°ã®ããŒãžã§ã³ãéããŠããããæå³ãããŠããªãå Žåã¯ãç§ã¯å¿ããä¿¡ããŠããŸãããªãã¡ã©ãŒä»æ§ã§ã¯ããURIãã§ã¯ãªããURLããšè¡šç€ºãããŸãã
ç¹°ãè¿ãã«ãªããŸãããCloudflareãããã§æªã俳åªã ãšã¯æããŸãããããããããæŠãã§ãnpmãšCloudflareã®ããã«ãå€ãã®äººãããµã€ããéžã¶ãã®ãã©ãã»ã©éãããèŠãŠãã£ããããŸããã ç§ãã¡ã¯åœŒããç¯ããééãã®åœ±é¿ãåããŸããããç§ãã¡ã¯åœŒãã®é¡§å®¢ã§ããããã圌ããç¯ããééãã®åœ±é¿ãåããããšããããŸãããã¡ããã人éãæ©æ¢°ã®ããã«ã圌ãã¯æã ééããç¯ããŸããå®ç§ã§ã¯ãããŸããã ããããŸãã«äžçã§ãã æŠããŠãç§ãã¡ã¯åŸãããå¿çã«éåžžã«æºè¶³ããŠããããã®åé¡ãèæ ®ããŠãç£èŠããã³å¿çã·ã¹ãã ãæ¹åããŸããã
FWIWãããªãã¡ã©ãŒãã¯URIãšããŠå®çŸ©ãããŠããŸããã ä»æ§ãåç §ããŠãã ããïŒ https ïŒ
@reschkeãã®èªæžã§ãããããã¯ãŸã å®å šã«æå¹ã§ãã
ã€ãŸãã https://registry.npmjs.org/foo
ããã Referer: install
ãšãå®å
šã«è§£æ±ºããããªãã¡ã©ãŒã¯ãæå¹ãªURIã§ããhttps://registry.npmjs.org/install
ã«ãªããŸãã https://registry.npmjs.org/foo/-/foo-1.2.3.tgz
ããã¯ã https://registry.npmjs.org/foo/-/install
ããããæå¹ãªURIã«ãªããŸãã
ä»æ§ãæå³ãããããåºãèªãã§ããå Žåã§ãããã®ããã«ãªãã¡ã©ãŒã䜿çšããããšã¯ä»æ§ã®ãéåãã§ã¯ãªãããªãã¡ã©ãŒãå«ããªã¯ãšã¹ãããããã¯ãŸãã¯ã¬ãŒãå¶éããããã®ïŒå®å šã«èš±ãããïŒïŒèª€ã£ãè¡ãéãã§ããå®å šä¿®é£ŸURLã§ã¯ãªãããããŒã
ãã ããããã«ç
§ãããŠãnpmcliãéä¿¡ããRefererããããŒã«ã¹ããŒã ãé
眮ããããšã¯ãããã䟡å€ããããŸãã ããã調æ»ããŠããªã¯ãšã¹ãããããã·ã«ãã£ãŠå£ãããå¯èœæ§ãå€ããå°ãªããçºçãããã©ããã確èªããå¿
èŠããããŸãã ãã¡ãããå¥ã®ãªãã·ã§ã³ã¯ãäžéšã®ãããã·ããã£ã«ã¿ãªã³ã°ã«ç±å¿ã«ãªããããŠãçæ³çãªããŒã¿ããããã«å°ãªããªãããšãåãå
¥ããããšã§ããã代ããã«npm-command: install
ãªã©ã®ããæ確ãªæå³ãæã€ã«ã¹ã¿ã ããããŒã䜿çšããŸãã npm-session
ããããŒã«å¯ŸããŠãããè¡ãããªã¯ãšã¹ããã°ã«ãŒãåããŸãããŠãŒã¶ãŒãšãŒãžã§ã³ãããå®éã®ãnpmã¯ã©ã€ã¢ã³ãã§ãããšç€ºåããŠããå Žåã§ãããã®ã«ã¹ã¿ã ããããŒãååŸã§ããªãå ŽåããããŸãïŒãŸãã¯å°ãªããšãããã䞻匵ããŠããïŒã
æãåèã«ãªãã³ã¡ã³ã
ããã«ã¡ã¯ãCloudflareããã®å€å€§ãªè¬çœªãããªãã®åé¡ã®ã³ã¡ã³ãã«çŽæ¥ããçš®ã®äºåŸåæã
ç§ã¯DDoSä¿è·ããŒã ã®ãšã³ãžãã¢ãªã³ã°ãããŒãžã£ãŒã§ãããä»æ11:06 UTCã«ãä¿¡å·ã®1ã€ã«åœ±é¿ãäžããã«ãŒã«ã埮調æŽããŸããã ã·ã°ãã«ã¯HTTPãªãã¡ã©ãŒããããŒã«é¢é£ããŠãããç¡å¹ãªãªãã¡ã©ãŒããããŒã調ã¹ãã³ãŒãããããŸãã ãã®å ŽåããæãããªãŽããã ãã§ãªããHTTPä»æ§ã«æºæ ããŠããªããã®ããå«ããããã«èª¿æŽããŸãã...ã€ãŸãããªãã¡ã©ãŒã¯URIã§ããïŒ ããã§ãªããã°ãããã¯æªããã©ãã£ãã¯ã«ã€ããŠã®ç¥èã«è²¢ç®ããŸãã
ããã§...ãªããããnpmjs.orgã«åœ±é¿ãäžããã®ã§ããïŒ å€ãã®NPMãã©ãã£ãã¯ããHTTPä»æ§ã«ããã°ç¡å¹ãªãã€ã³ã¹ããŒã«ããšããŠãªãã¡ã©ãŒãéä¿¡ããããšãå€æããŸããã NPMããã©ãã£ãã¯ã®å€ããµã€ãã§ãããããDDoSã·ã¹ãã ããããæ€åºãããã©ãã£ãã¯ãHTTPãã©ãããšããŠæ±ããã¬ãŒãå¶éãé©çšããå¿ èŠããããšå€æããŸããã
NPMã§HTTP429ãå¢å ããŠããããšã«æ°ä»ãããšãïŒTwitterã§èŠãããããã«ïŒãNPMã«é£çµ¡ããŠå éšèª¿æ»ãéå§ããŸããã æ ¹æ¬åå ãç¹å®ãããšããã«ãå€æŽãå ã«æ»ããŸãããããã¯13ïŒ00UTCã§ããã
NPMãšä»ã®1ã€ã®ãµã€ããHTTPä»æ§ä»¥å€ã®ç®çã§ãªãã¡ã©ãŒã䜿çšããŠããããšã«æ³šæãããããäºåºŠãšèµ·ãããªãããã«ã·ã¹ãã ãæŽæ°ããŸãã ããã«ããã®æ§è³ªã®å€åã«é¢ããç£èŠãæ¹åããŠã圱é¿ãããæ©ãçºèŠããèªåçã«ããŒã«ããã¯ã§ããããã«ããŸãã