当前位置:网站首页>如何检测出你们安装的依赖是否安全
如何检测出你们安装的依赖是否安全
2022-07-29 15:03:00 【紫微前端】
如何确保所有 npm install 的依赖都是安全的?
当有一个库偷偷在你的笔记本后台挖矿怎么办?
比如,不久前一个周下载量超过八百万的库被侵入,它在你的笔记本运行时会偷偷挖矿。

Audit
Audit,审计,检测你的所有依赖是否安全。npm audit/yarn audit 均有效。
通过审计,可看出有风险的 package、依赖库的依赖链、风险原因及其解决方案。
$ npm audit
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ high │ Regular Expression Denial of Service in trim │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ trim │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=0.0.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ @mdx-js/loader │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ @mdx-js/loader > @mdx-js/mdx > remark-mdx > remark-parse > │
│ │ trim │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://www.npmjs.com/advisories/1002775 │
└───────────────┴──────────────────────────────────────────────────────────────┘
76 vulnerabilities found - Packages audited: 1076
Severity: 49 Moderate | 27 High
Done in 4.60s.
你可以在我的笔记本上挖矿,但绝不能在生产环境服务器下挖矿,此时可使用以下两条命令。
$ npm audit production
$ yarn audit dependencies

通过 npm audit fix 可以自动修复该库的风险,原理就是升级依赖库,升级至已修复了风险的版本号。
$ npm audit fix
yarn audit 无法自动修复,需要使用 yarn upgrade 手动更新版本号,不够智能。
synk (opens new window)是一个高级版的 npm audit,可自动修复,且支持 CICD 集成与多种语言。
$ npx snyk
$ npx wizard

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

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

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

边栏推荐
- Learning Policies for Adaptive Tracking with Deep Feature Cascades全文翻译
- 突破性能天花板!亚信数据库支撑 10 多亿用户,峰值每秒百万交易
- Instant Messaging - New Software that Changes Social and Work Status
- 求连续90日每日的用户留存率 -- 全网唯一
- 药物研发---信息部门考核办法
- NLP自然语言处理-机器学习和自然语言处理介绍(二)
- 力扣每日一题-第45天-682. 棒球比赛
- 韦伯首批照片引发论文竞速大战:晚13秒即错失首发,科研党纷纷肝得起飞
- CNCF Keith Chan:分布式云时代,云原生社区的发展与趋势
- ES6 从入门到精通 # 11:Map 数据类型
猜你喜欢
令人难以置信的DeepMind数据库现在包括了科学界已知的几乎所有蛋白质

ES6 from entry to master # 10: Set the Set data type

MySQL Index Common Interview Questions (2022 Edition)

深度学习-神经网络

NLP自然语言处理-机器学习和自然语言处理介绍(二)

CSP:重庆八中宏帆初级中学校新初二编程社C2024liuyanjia暑假一期集训总结(2/6))

【深度学习】深度学习刷SOTA的一堆trick

Qt learning on the first day

双线机房、多线机房、BGP机房的关系和对比

这个保护数据隐私的赛道,人人都想插一脚,互联网大厂挤破头,连甲方都下场自研了...
随机推荐
【 LeetCode 】 121. The best time to buy stocks
MySQL索引常见面试题(2022版)
【深度学习】深度学习刷SOTA的一堆trick
【yolov7系列二】正负样本分配策略
LeetCode·每日一题·593.有效的正方形·数学
AOP implementation enterprise API access interface monitoring (via Google Guava cache data)
文件管理:文件的逻辑结构
数据中台建设(四):企业构建数据中台评估
怎么建立数据分析思维
Shell script programming - operation
广汽本田安全驾驶体验营,老司机的必修课
Linux环境 redis完整配置及启动命令
Face key point prediction and normalization
Qt实战 | 如何获取USB设备信息?
药品研发--质理研究人员绩效办法
Google Play policy update | in July 2022
进入中国27年,又一美妆巨头要离场
【LeetCode】217. 存在重复元素
Qt学习第一天
uni 的下拉式筛选菜单的功能/图片懒加载