CodeQL 文档

使用未加密的通信通道下载依赖项

ID: js/insecure-dependency
Kind: problem
Security severity: 8.1
Severity: warning
Precision: high
Tags:
   - security
   - external/cwe/cwe-300
   - external/cwe/cwe-319
   - external/cwe/cwe-494
   - external/cwe/cwe-829
Query suites:
   - javascript-code-scanning.qls
   - javascript-security-extended.qls
   - javascript-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

使用 HTTP 或 FTP 等不安全协议下载构建依赖项会使构建过程容易受到中间人 (MITM) 攻击。

这可能允许攻击者将恶意代码注入到下载的依赖项中,从而感染构建工件并在构建工件的机器上执行任意代码。

建议

在从 URL 下载工件时始终使用安全协议,例如 HTTPS 或 SFTP。

示例

以下示例显示了一个 package.json 文件,该文件使用不安全的 HTTP 协议下载依赖项。

{
  "name": "example-project",
  "dependencies": {
    "unencrypted": "http://example.org/foo/tarball/release/0.0.1",
    "lodash": "^4.0.0"
  }
}

修复方法是将协议更改为 HTTPS。

{
  "name": "example-project",
  "dependencies": {
    "unencrypted": "https://example.org/foo/tarball/release/0.0.1",
    "lodash": "^4.0.0"
  }
}

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私