Appearance
第三方依赖安全问题
现如今进行应用开发,无论是后端服务器应用还是前端应用开发,绝大多数时候我们都是在借助开发框架和各种类库进行快速开发。然而,一些第三方的依赖或者插件存在很多安全性问题,也会存在这样那样的漏洞,所以使用起来得谨慎。
第三方依赖安全案例
去年的 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 中:
bash
npm install -g snyk
snyk auth
snyk test