Golang 程序漏洞检测利器 govulncheck(三):github 集成方法

news2024/11/28 0:51:25

上一篇文章详细介绍了 Golang 程序漏洞扫描工具 govulncheck 使用的漏洞数据库(Go vulnerability database),本文详细讲解下 Github 项目如何使用 govulncheck。

govulncheck 为 Golang 开发者提供了一种准确可靠的方式来了解程序中可能存在的漏洞。官方也开发了对应的 GitHub Action 来帮助开发者扫描托管在 Github 上的项目。

govulncheck GitHub Action 使用方法

首先在项目根目录创建 .github 目录,然后在 .github 目录下创建 workflows 目录,最后在 workflows 目录下面创建 govulncheck.yml 文件,文件名可以根据自己的实际情况命名。写入如下内容:

name: "govulncheck"

on:
  push:
    branches: [ main ]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [ main ]
  schedule:
    - cron: '24 1 * * 0'

jobs:
  govulncheck_job:
    runs-on: ubuntu-latest
    name: Run govulncheck
    steps:
      - id: govulncheck
        uses: golang/govulncheck-action@v1
        with:
          go-version-input: 1.20.6
          go-package: ./...

然后提交代码并推送到 github 后,就会自动触发扫描。

govulncheck GitHub Action 相关配置说明

默认情况下,govulncheck Github Action 将运行最新版本的 Go 版本,并扫描所提供的 Go 模块中的所有包。假设在本地安装了最新的 Go 版本,这相当于在命令行中运行以下命令:

$ govulncheck ./...

使用最新的 Go 版本执行扫描并不是我们想要的,所以使用 go-version-input 将 Go 版本设置为了 1.20.6,使用 go-package 指定要扫描的包的范围。govulncheck Github Action 还有其他几个可选的设置,如下:

  • work-dir: 运行 govulncheck 的目录, 默认为 '.'
  • repo-checkout: 检出仓库,默认为 true
  • check-latest:检查最新的 Go 版本,默认为 false
  • go-version-file:go.mod 或 go.work 指定的 Go 版本,默认为 ''

当发现漏洞时,GitHub Actions 会显示一个错误,其中包含有关漏洞的信息以及对应的修复方法。如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1070147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

matlab高斯消元法求逆

算法实现基本与高斯消元法求解线性方程组相同,同样还是三层循环进行消元和回代,只是增广矩阵的规模由nn1变成了n2n,因此算法复杂度仍然为O(n3)。 A[1,1,2,1;1,2,0,1;1,4,2,1;1,8,2,4]; beye(4); A_b[A,b]; [n,m]size(A_b); for i1:nfor jm:-…

零基础,想做一名网络安全工程师,我可以去哪里学,或者有什么建议?

这应该是全网最全的网络安全扫盲帖了!发CSDN也有一段时间了,经常会有朋友在后台问我各种问题,比如“应该如何选方向”、“网络安全前景如何”、“怎么选适合的安全岗位”等等。于是今天借这个问题来给大家好好说说,如果你是零基础…

C++简单上手helloworld 以及 vscode找不到文件的可能性原因

helloworld #include <iostream>int main() {std::cout << "hello world!" << std::endl;return 0; }输入输出小功能 #include <iostream> using namespace std; /* *主函数 *输出一条语句 */int main() {// 输出一条语句cout << &q…

有关java连接数据库报错的解决方案

Ⅰ 报错信息 在使用java连接数据库时&#xff0c;使用下面代码 Class.forName("com.mysql.jdbc.Driver"); Connection connection DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test1", "test1", "test");出现的报错…

Python3入门教程||Python3 SMTP发送邮件

在Python3 中应用的SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则&#xff0c;由它来控制信件的中转方式。 python的 smtplib 提供了一种很方便的途径发送电子邮件。它对 smtp 协议进行了简单的…

转行自学软件测试,8个月成功上岸(艰难的自学历程)

转行学软件测试&#xff0c;最后找到第一份工作&#xff0c;我一共用了八个月。六个半月学习技术&#xff0c;一个半月找到工作。 自学软件测试到就业并不容易&#xff0c;过程中多次想放弃&#xff0c;学习遇到的问题太多自己解决很麻烦加上网络上各种传达行情不好的信息。现…

uCOSIII实时操作系统 三 移植

目录 uCOSIII简介&#xff1a; 准备工作&#xff1a; 准备基础工程&#xff1a; UCOSIII工程源码&#xff1a; UCOSIII移植&#xff1a; 向基础工程中添加相应的文件夹 向工程中添加分组 常见问题&#xff1a; 下载验证&#xff1a; uCOSIII简介&#xff1a; UCOS-I…

【C++ 学习 ㉖】- 位图详解(哈希扩展)

目录 一、位图的概念 二、位图的实现 2.1 - bitset.h 2.2 - test.cpp 三、位图的应用 3.1 - 例题一 3.2 - 例题二 一、位图的概念 假设有这样一个需求&#xff1a;在 100 亿个整型数字中快速查询某个数是否存在其中&#xff0c;并假设是 32 位操作系统&#xff0c;4 GB…

什么是零日攻击?

零日攻击 1. 什么是零日漏洞2. 什么是零日市场3. 如何将零日漏洞转化为零日攻击4. 零日攻击的主要目标5. 典型零日攻击事件 1. 什么是零日漏洞 零日攻击是指利用零日漏洞对系统或软件应用发动的网络攻击。 零日漏洞也称零时差漏洞&#xff0c;通常是指还没有补丁的安全漏洞。…

代码随想录算法训练营第四十五天 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1049. 最后一块石头的重量 II 视频讲解&#xff1a;动态规划之背包问题&#xff0c;这个背包最多能装多少&#xff1f;LeetCode&#xff1a;1049.最后一块石头的重量II_哔哩哔哩_bilibili 代码随想录 &#xff08;1&#xff09;代码 494. 目标和 视频讲解&#xff1a;动态规划…

10.8号作业

LED三盏灯的交替闪烁 .text .global _start _start: /* 1. led灯的初始化 *//* 1.1 使能GPIOE、DPIOF外设控制器的时钟 */ldr r0, 0x50000A28ldr r1, [r0]orr r1, r1, #(0x3 << 4)str r1, [r0]/* 1.2 设置PE10、PE8、PF10引脚为输出模式 */ldr r0, 0x50006000ldr r1, […

Redis到底是什么?都有哪些特性?看完这一篇就都会了

目录 Redis是什么 Redis的应用场景有哪些&#xff1f; Redis的数据类型及主要特性 Redis的数据结构 简单动态字符串SDS (Simple Dynamic String) SDS的特点 Redis特性1&#xff1a;事务 Redis特性2&#xff1a;发布订阅(Pub/Sub) Redis特性3&#xff1a;Stream Redis…

IntelliJ IDEA :解决 idea 导入项目爆红

IntelliJ IDEA &#xff1a;解决idea导入项目爆红 - LevelCoder的个人页面 - OSCHINA - 中文开源技术交流社区我们在导入一个新的项目到idea的时候,项目明明没有报错,但是会出现出了父包属于正常颜色外,其子包都会爆红色但是不属于项目本身错误,依旧可以正常启动,小编拿到入git…

C语言详细讲解#error与#line如何使用

C语言详细讲解#error与#line如何使用_C 语言_脚本之家 (jb51.net) 这篇文章主要介绍了C语言中#error与#line如何使用&#xff0c;#error与#line虽然在语言里面用的比较少&#xff0c;但是还是有必要了解一下 − 目录 一、#error 的用法二、#line 的用法三、小结 一、#error…

用于现场仪表过程控制的多协议配置工具

一 挑战 在现代生产环境中&#xff0c;我们会使用各种现场设备来记录过程数据&#xff08;从温度传感器到压力、液位和流量计&#xff09;&#xff0c;而这些数据需要通过多种通信协议来进行传输&#xff0c;例如HART、FOUNDATION Fieldbus或PROFIBUS PA。为此&#xff0c;每个…

找不到d3dx9_42.dll,无法继续执行代码怎么办?详解各种解决方法及注意事项

找不到d3dx9_42.dll,无法继续执行代码怎么办&#xff1f;首先&#xff0c;我们来解释一下d3dx9_42.dll文件是什么以及为什么会出现丢失的情况。在Windows操作系统中&#xff0c;d3dx9_42.dll是DirectX 9的一部分&#xff0c;它包含了许多DirectX 9图形函数的实现。这些函数被游…

VMware设置Linux网络

vmware提供了三种网络工作模式&#xff0c;Bridged&#xff08;桥接模式&#xff09;、NAT&#xff08;网络地址转换模式&#xff09;、Host-Only&#xff08;仅主机模式&#xff09;&#xff1a; vmware一般有两个虚拟网卡&#xff0c;VMnet1&#xff08;仅主机模式&#xff…

【Node.js】URL 模块

自动重启服务器的插件nodemon&#xff1a; npm i -g nodemon。或者 node-dev 也可以&#xff1a;npm i -g node-dev。 parse&#xff0c;format&#xff0c;resolve 为旧版写法。 parse import url from url const urlString https://www.baidu.com:443/ad/index.html?id8&a…

Beam Focusing for Near-Field Multi-User MIMO Communications阅读笔记

abstract 大天线阵列和高频段是未来无线通信系统的两个关键特征。大规模天线与高传输频率的组合通常导致通信设备在近场&#xff08;菲涅耳&#xff09;区域中操作。在本文中&#xff0c;我们研究了潜在的波束聚焦&#xff0c;可行的近场操作&#xff0c;在促进高速率多用户下…

基于SVM+TensorFlow+Django的酒店评论打分智能推荐系统——机器学习算法应用(含python工程源码)+数据集+模型(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型训练及保存3. 模型应用 系统测试1. 训练准确率2. 测试效果3. 模型应用 相关其它博客工程源代码下载其它资料下载 前言 本项目以支持向量机&#xff08;SVM&#xff09;技术为核心&#xff0c;…