{"pageContext":{"index":94,"total":364,"name":"2021-02-21","items":[{"node":{"frontmatter":{"title":"2020 AWS官方博客文章 TOP 15","publish":true,"cover":"https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2020/06/09/CodeCommit.-CodeBuild-ECR.png","showCover":true,"date":"2021-02-21","category":"nodejs","url":"https://aws.amazon.com/cn/blogs/architecture/top-15-architecture-blog-posts-of-2020/","author":"Jane Scolieri and Ellen Crowley","translator":"","tags":["aws"],"priority":1},"html":"<h2 id=\"web抓取解决方案的无服务器架构\"><a href=\"#web%E6%8A%93%E5%8F%96%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E7%9A%84%E6%97%A0%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9E%B6%E6%9E%84\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://aws.amazon.com/blogs/architecture/serverless-architecture-for-a-web-scraping-solution\">Web抓取解决方案的无服务器架构</a></h2>\n<h2 id=\"使用vpc共享，高性价比的多账户微服务架构\"><a href=\"#%E4%BD%BF%E7%94%A8vpc%E5%85%B1%E4%BA%AB%EF%BC%8C%E9%AB%98%E6%80%A7%E4%BB%B7%E6%AF%94%E7%9A%84%E5%A4%9A%E8%B4%A6%E6%88%B7%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2020/04/06/NLB_Blog1-1-300x211.jpg\">使用VPC共享，高性价比的多账户微服务架构</a></h2>\n<h2 id=\"现场记录在aws-transit-gateway中使用路由表\"><a href=\"#%E7%8E%B0%E5%9C%BA%E8%AE%B0%E5%BD%95%E5%9C%A8aws-transit-gateway%E4%B8%AD%E4%BD%BF%E7%94%A8%E8%B7%AF%E7%94%B1%E8%A1%A8\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2020/08/07/How-different-AWS-accounts-are-connected-via-AWS-Transit-Gateway-300x203.png\">现场记录:在AWS Transit Gateway中使用路由表</a></h2>\n<h2 id=\"无服务器的基于流的实时处理\"><a href=\"#%E6%97%A0%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%9F%BA%E4%BA%8E%E6%B5%81%E7%9A%84%E5%AE%9E%E6%97%B6%E5%A4%84%E7%90%86\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2020/04/13/Lambda-buffers-2-300x128.png\">无服务器的基于流的实时处理</a></h2>\n<h2 id=\"自由市场如何在动态环境中阻止恶意流量\"><a href=\"#%E8%87%AA%E7%94%B1%E5%B8%82%E5%9C%BA%E5%A6%82%E4%BD%95%E5%9C%A8%E5%8A%A8%E6%80%81%E7%8E%AF%E5%A2%83%E4%B8%AD%E9%98%BB%E6%AD%A2%E6%81%B6%E6%84%8F%E6%B5%81%E9%87%8F\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://aws.amazon.com/blogs/architecture/mercado-libre-how-to-block-malicious-traffic-in-a-dynamic-environment\">自由市场:如何在动态环境中阻止恶意流量</a></h2>\n<h2 id=\"现场记录无服务器的基于容器的api与amazon-ecs和amazon-api网关\"><a href=\"#%E7%8E%B0%E5%9C%BA%E8%AE%B0%E5%BD%95%E6%97%A0%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%9F%BA%E4%BA%8E%E5%AE%B9%E5%99%A8%E7%9A%84api%E4%B8%8Eamazon-ecs%E5%92%8Camazon-api%E7%BD%91%E5%85%B3\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://aws.amazon.com/blogs/architecture/field-notes-serverless-container-based-apis-with-amazon-ecs-and-amazon-api-gateway/\">现场记录:无服务器的基于容器的API与Amazon ECS和Amazon API网关</a></h2>\n<h2 id=\"构建一个可伸缩的文档预处理管道\"><a href=\"#%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BC%B8%E7%BC%A9%E7%9A%84%E6%96%87%E6%A1%A3%E9%A2%84%E5%A4%84%E7%90%86%E7%AE%A1%E9%81%93\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2020/05/04/Pre-processing-pipeline-architecture-SM-300x300.jpg\">构建一个可伸缩的文档预处理管道</a></h2>\n<h2 id=\"介绍现代云架构的消息传递\"><a href=\"#%E4%BB%8B%E7%BB%8D%E7%8E%B0%E4%BB%A3%E4%BA%91%E6%9E%B6%E6%9E%84%E7%9A%84%E6%B6%88%E6%81%AF%E4%BC%A0%E9%80%92\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2020/03/02/Asynchronous-communication-300x108.png\">介绍现代云架构的消息传递</a></h2>\n<h2 id=\"在aws上构建一个自服务、安全且持续兼容的环境\"><a href=\"#%E5%9C%A8aws%E4%B8%8A%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E6%9C%8D%E5%8A%A1%E3%80%81%E5%AE%89%E5%85%A8%E4%B8%94%E6%8C%81%E7%BB%AD%E5%85%BC%E5%AE%B9%E7%9A%84%E7%8E%AF%E5%A2%83\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://aws.amazon.com/blogs/architecture/building-a-self-service-secure-continually-compliant-environment-on-aws/\">在AWS上构建一个自服务、安全且持续兼容的环境</a></h2>\n<h2 id=\"为可靠的可伸缩性进行架构设计\"><a href=\"#%E4%B8%BA%E5%8F%AF%E9%9D%A0%E7%9A%84%E5%8F%AF%E4%BC%B8%E7%BC%A9%E6%80%A7%E8%BF%9B%E8%A1%8C%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"https://aws.amazon.com/blogs/architecture/architecting-for-reliable-scalability/\">为可靠的可伸缩性进行架构设计</a></h2>"}},{"node":{"frontmatter":{"title":"2021 Web应用程序安全检查表","publish":true,"cover":"https://www.appsecmonkey.com/img/web-application-security-checklist/cover.webp","showCover":true,"date":"2021-02-21","category":"security","url":"https://www.appsecmonkey.com/blog/web-application-security-checklist/","author":"Teo Selenius","translator":"","tags":["web"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Let’s Encrypt正在实施从日处理量2百万到2亿的升级","publish":true,"cover":"https://letsencrypt.org/images/letsencrypt-logo-horizontal.svg","showCover":true,"date":"2021-02-21","category":"web","url":"https://letsencrypt.org/2021/02/10/200m-certs-24hrs.html","author":"Josh Aas","translator":"","tags":["ssl"],"priority":1},"html":"<p><a href=\"https://letsencrypt.org/donate/\">letsencrypt赞助链接</a></p>"}},{"node":{"frontmatter":{"title":"ReacType - 可导出代码的React设计工具","publish":true,"cover":"https://camo.githubusercontent.com/401dd27d23193ff53830c022d5c6650435472b53a5daf5823fca5537077faf49/68747470733a2f2f692e696d6775722e636f6d2f64316f4869546d2e676966","showCover":true,"date":"2021-02-21","category":"frontend","url":"https://github.com/open-source-labs/ReacType","author":"OSLabs","translator":"","tags":["react"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"SolarWinds 攻击至少需要有 1000 位工程师","publish":true,"cover":"https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0217%2F4d1d2483j00qoofir0014d200u000gwg00i100a5.jpg&thumbnail=650x2147483647&quality=80&type=jpg","showCover":true,"date":"2021-02-21","category":"security","url":"https://www.163.com/dy/article/G32Q25QR0511CPOJ.html","author":"Linux","translator":"","tags":["security"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"excellentexport - html table浏览器导出excel格式","publish":true,"cover":"","showCover":true,"date":"2021-02-21","category":"frontend","url":"https://github.com/jmaister/excellentexport","author":"Jordi Burgos","translator":"","tags":["excel"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"landy-react-template 商业网站首页react模板","publish":true,"cover":"https://user-images.githubusercontent.com/48876996/100373174-cd393880-3023-11eb-9fef-8acdf9733120.gif","showCover":true,"date":"2021-02-21","category":"frontend","url":"https://github.com/Adrinlol/landy-react-template","author":"Lasha Kakabadze","translator":"","tags":["react"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"disableautofill.js - 禁止html form自动填充功能","publish":true,"cover":"","showCover":true,"date":"2021-02-21","category":"frontend","url":"https://github.com/terrylinooo/disableautofill.js","author":"Terry L.","translator":"","tags":["form"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"nodejs作者Ryan Dahl访谈2021摘要","publish":true,"cover":"https://evrone.com/sites/default/files/styles/card_w1920/public/n-fields/cases/deno.jpg?itok=V3xiHdCD","showCover":true,"date":"2021-02-21","category":"nodejs","url":"https://blog.kazge.com/nodejs/2021/02/19/zh-interview-with-nodejs-father/","author":"Evrone","translator":"","tags":["interview"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"教程 - Typescript与AWS SAM Lambdas的完整设置","publish":true,"cover":"https://cdn.evilmartians.com/front/posts/serverless-typescript-a-complete-setup-for-aws-sam-lambda/cover-557b751.png","showCover":true,"date":"2021-02-21","category":"nodejs","url":"https://evilmartians.com/chronicles/serverless-typescript-a-complete-setup-for-aws-sam-lambda","author":"Andrey Novikov and Sergey Alexandrovich","translator":"","tags":["serverless"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"rerousel - react无限循环图片轮播组件","publish":true,"cover":"https://camo.githubusercontent.com/d70b2510734a3fb9c50145da8afe24acab150bef06a10fbe014bd73bc2ee52d5/68747470733a2f2f73322e67696679752e636f6d2f696d616765732f7265726f7573656c332e676966","showCover":true,"date":"2021-02-21","category":"frontend","url":"https://github.com/aexol-studio/rerousel","author":"Aexol","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"格式化数组输出","publish":true,"cover":"","showCover":true,"date":"2021-02-21","category":"javascript","url":"https://kentcdodds.com/blog/listify-a-java-script-array","author":"Kent C. Dodds","translator":"","tags":["array"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>ListFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'en'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>style<span class=\"token punctuation\">:</span> <span class=\"token string\">'narrow'</span><span class=\"token punctuation\">,</span> type<span class=\"token punctuation\">:</span> <span class=\"token string\">'unit'</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span>items<span class=\"token punctuation\">)</span>\n<span class=\"token comment\">// Sojourner Opportunity Spirit Curiosity Perseverance</span>\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>ListFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'es'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>style<span class=\"token punctuation\">:</span> <span class=\"token string\">'narrow'</span><span class=\"token punctuation\">,</span> type<span class=\"token punctuation\">:</span> <span class=\"token string\">'unit'</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span>items<span class=\"token punctuation\">)</span>\n<span class=\"token comment\">// Sojourner Opportunity Spirit Curiosity Perseverance</span>\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">Intl<span class=\"token punctuation\">.</span>ListFormat</span><span class=\"token punctuation\">(</span><span class=\"token string\">'de'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>style<span class=\"token punctuation\">:</span> <span class=\"token string\">'narrow'</span><span class=\"token punctuation\">,</span> type<span class=\"token punctuation\">:</span> <span class=\"token string\">'unit'</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span>items<span class=\"token punctuation\">)</span>\n<span class=\"token comment\">// Sojourner, Opportunity, Spirit, Curiosity und Perseverance</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"分享 - 电子书27天卖得1万美元","publish":true,"cover":"https://camo.githubusercontent.com/4e204e93dcfc33679c997c739fbf4f651fdf268d23961bae6f9b4c25ad4ec145/68747470733a2f2f7062732e7477696d672e636f6d2f6d656469612f45735a3372753258634155513451673f666f726d61743d6a7067266e616d653d6d656469756d","showCover":true,"date":"2021-02-21","category":"earn","url":"https://blog.alexellis.io/my-first-ebook-results-feedback/","author":"Alex Ellis","translator":"","tags":["ebook"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"避免npm替换攻击","publish":true,"cover":"https://github.blog/wp-content/uploads/2021/02/npm-github.png?w=1200","showCover":true,"date":"2021-02-21","category":"nodejs","url":"https://github.blog/2021-02-12-avoiding-npm-substitution-attacks/","author":"Isaac Z. Schlueter","translator":"","tags":["aws"],"priority":1},"html":"<ul>\n<li>为内部包使用scopes</li>\n<li>项目根目录使用.npmrc限定要使用的registry</li>\n<li>小心proxying.</li>\n<li>特别注意构建失败</li>\n</ul>"}}]}}