• 如何检测出你们安装的依赖是否安全


    如何确保所有 npm install 的依赖都是安全的?

    当有一个库偷偷在你的笔记本后台挖矿怎么办?

    比如,不久前一个周下载量超过八百万的库被侵入,它在你的笔记本运行时会偷偷挖矿。

    Audit

    Audit,审计,检测你的所有依赖是否安全。npm audit/yarn audit 均有效。

    通过审计,可看出有风险的 package、依赖库的依赖链、风险原因及其解决方案。

    1. $ npm audit
    2. ┌───────────────┬──────────────────────────────────────────────────────────────┐
    3. │ high │ Regular Expression Denial of Service in trim │
    4. ├───────────────┼──────────────────────────────────────────────────────────────┤
    5. │ Package │ trim │
    6. ├───────────────┼──────────────────────────────────────────────────────────────┤
    7. │ Patched in │ >=0.0.3
    8. ├───────────────┼──────────────────────────────────────────────────────────────┤
    9. │ Dependency of@mdx-js/loader │
    10. ├───────────────┼──────────────────────────────────────────────────────────────┤
    11. │ Path │ @mdx-js/loader > @mdx-js/mdx > remark-mdx > remark-parse > │
    12. │ │ trim │
    13. ├───────────────┼──────────────────────────────────────────────────────────────┤
    14. │ More info │ https://www.npmjs.com/advisories/1002775 │
    15. └───────────────┴──────────────────────────────────────────────────────────────┘
    16. 76 vulnerabilities found - Packages audited: 1076
    17. Severity: 49 Moderate | 27 High
    18. ✨ Done in 4.60s.

    你可以在我的笔记本上挖矿,但绝不能在生产环境服务器下挖矿,此时可使用以下两条命令。

    1. $ npm audit production
    2. $ yarn audit dependencies

     

    通过 npm audit fix 可以自动修复该库的风险,原理就是升级依赖库,升级至已修复了风险的版本号。

    $ npm audit fix
    

    yarn audit 无法自动修复,需要使用 yarn upgrade 手动更新版本号,不够智能。

    synk (opens new window)是一个高级版的 npm audit,可自动修复,且支持 CICD 集成与多种语言。

    1. $ npx snyk
    2. $ npx wizard

     

     

    CI 机器人

    可通过 CI/gitlab/github 中配置机器人,使他们每天轮询一次检查仓库的依赖中是否有风险。

     

     

    在 Github 中,可单独设置 dependabot 机器人,在仓库设置中开启小机器人,当它检测到有问题时,会自动向该仓库提交 PR。

     

     

    而它的解决方案也是升级版本号。

     

     

  • 相关阅读:
    Mac cocoapods 3分钟安装教程( 国内镜像源方法)
    Java线程面试题
    浅析微前端框架 single-spa
    代码随想录-Day25
    abp(net core)+easyui+efcore实现仓储管理系统——ABP升级7.3上(五十八)
    学单片机有前途吗?
    判断一个对象是不是数组的3种常用方法
    【精通Java】集合类体系之Collection
    Java_多态/动态绑定机制/多态数组/多态参数
    低代码平台前端的设计与实现(四)组件大纲树的构建设计
  • 原文地址:https://blog.csdn.net/liuhao9999/article/details/126054333