网站里的动效怎么做,文成做网站,中国反钓鱼网站联盟,小广告的胶怎么清理govulncheck 是什么#xff1f;
govulncheck 是一个命令行工具#xff0c;可以帮助 Golang 开发者快速找到项目代码和依赖的模块中的安全漏洞。该工具可以分析源代码和二进制文件#xff0c;识别代码中对这些漏洞的任何直接或间接调用。
默认情况下#xff0c;govulnchec…govulncheck 是什么
govulncheck 是一个命令行工具可以帮助 Golang 开发者快速找到项目代码和依赖的模块中的安全漏洞。该工具可以分析源代码和二进制文件识别代码中对这些漏洞的任何直接或间接调用。
默认情况下govulncheck 通过 Go 漏洞数据库 https://vuln.go.dev 提供的接口查询相关的模块是否包含漏洞查询接口的请求只包含模块路径不包含程序的代码或其他属性。
安装和使用方法
安装之前需要将 Go 版本升级到1.18及以上使用如下命令安装最新版本的 govulncheck
$ go install golang.org/x/vuln/cmd/govulnchecklatest
在项目的主目录包含 go.mod 文件的目录执行如下命令进行漏洞扫描
$ govulncheck ./...
govulncheck 也可以集成到自己的 CI/CD 系统里面govulncheck 考虑到这方面的需求所以输出结果可以选择 json 方式例如
$ govulncheck -json ./...
如果使用 govulncheck 扫描编译好的二进制文件需要使用参数 -modebinary 并跟上二进制文件的路径例如
$ govulncheck -modebinary $HOME/go/bin/my-go-program
默认情况下项目如果不存在漏洞govulncheck 将成功退出状态码为0如果存在漏洞则返回非0的状态码。如果提供了 -json 参数无论检测到多少漏洞都会成功退出即状态码为0。
使用 govulncheck 需要注意的点如下
被扫描的二进制文件要求是使用 Go 1.18 或者更高版本构建的。对于函数指针和接口调用的分析比较保守在某些情况下可能会误报或者打印不够准确的堆栈信息。使用包反射对函数的调用对静态分析来说是不可见的。对于仅通过这些调用方式可访问到的有漏洞的代码也不会报告漏洞使用 unsafe 包也可能产生误报。因为 Go 二进制文件不包含详细的调用信息所以 govulncheck 也无法显示检测到的漏洞的调用链。对于二进制文件中存在的但无法访问到的代码也可能产生误报。只会给出当前执行环境和配置GOOS/GOARCH下的漏洞。假设一个漏洞只在 Linux中才有那么在 Windows 则不会报告该漏洞。所以需要注意跨平台开发的情况需要在不同的平台做漏洞扫描。另外需要注意的一点时执行扫描的 go 版本需要和运行环境的 go 版本保持一致假设 Go 1.18 标准库里才有的漏洞如果执行扫描使用的 Go 版本是1.19那么也不会报告该漏洞。