第三方依赖安全问题

Network

现如今进行应用开发,无论是后端服务器应用还是前端应用开发,绝大多数时候我们都是在借助开发框架和各种类库进行快速开发。然而,一些第三方的依赖或者插件存在很多安全性问题,也会存在这样那样的漏洞,所以使用起来得谨慎。

# 第三方依赖安全案例

去年的 lodash 原型污染。

# 避免问题

# 尽量减少第三方依赖,选用相对成熟的依赖包

# 定期使用 npm audit 检测依赖包的风险

为了提高 npm 依赖的安全,npm 6.1 后添加了 npm audit 工具,这个工具可以搜索当前项目中使用的依赖是否存在安全问题,并提供了 npm audit fix 工具修复。

它的工作原理是维护了一个已知不良依赖的名单,如果代码中使用了直接从 GitHub 而不是 npm 仓库中获取依赖,或不知名的依赖。npm audit 也是无法发现威胁。总的来说在加入第三方依赖时,需要谨慎考虑,不滥用依赖在前端开发也是非常重要的。

# Sonarqube

Sonarqube 应该是今年业界最为流行的代码审查工具了,Sonarqube 使用了和其他开源软件一样,软件开源服务收费的策略。我们可以自己搭建公司内部的代码审查平台,也可以直接使用 sonarqube 在线的扫描服务。公开服务的 Sonarqube,可以直接和 GitHub 和 Bitbucket 集成,但是需要提供相应的授权, 因此使用 Sonarqube 需要提供仓库权限 。

Sonarqube 中发现威胁只是它的功能之一。它提供了发现 Code Smells、Bugs、Vulnerabilities 三大特性,并且支持 Java、JavaScript 和 C#等大量语言。如果我们仅仅需要检查前端项目中代码的安全缺陷,我们可以使用另外更加轻量级能集成到构建脚本中的工具。

# snyk

如果不想暴露仓库权限,并且本地扫描,可以使用 snyk 这类轻量级的扫描工具。其实 snyk 也提供类似 Sonarqube 一样的平台,但是也提供了轻量级的本地扫描。

snyk 提供了 npm 安装,可以参考以下命令,简单的集成到 CI 中:

npm install -g snyk
snyk auth
snyk test
1
2
3
更新时间: 2022-01-30 15:35