技术速递|GitHub 初学者指南:GitHub 安全入门
创始人
2026-04-09 06:20:23

作者:Kedasha Kerr

排版:Alan Wang

学习如何使用 GitHub Advanced Security 保护你的项目,并确保它们的安全性。

欢迎回到《GitHub 初学者指南》第三季!

到目前为止,今年我们已经介绍了 GitHub Issues 和 Projects,以及 GitHub Actions。这一次,我们将稍微讨论一下安全性,以及 GitHub 提供了哪些工具来帮助你确保代码的安全。在本文结束时,你将了解如何使用内置工具(例如密钥扫描、Dependabot、代码扫描和 Copilot Autofix)来修复你仓库中的漏洞。

GitHub Issues 和 Projects

https://youtu.be/c67GaAkf1BE?si=gQm38vCKp0S8y66C/?wt.mc_id=3reg_webpage_reactor

GitHub Actions

https://www.youtube.com/watch?v=BQrohJ3PT7I/?wt.mc_id=3reg_webpage_reactor

为什么安全性很重要

漏洞是你代码或所使用库中的弱点,攻击者可以利用这些弱点。需要意识到,一旦你将某个库导入到项目中,你就继承了该库的所有风险,即使这些存在漏洞的代码并不是你自己编写的。这就是为什么即使是很小或全新的项目也可能存在漏洞——几乎所有软件都依赖第三方包。

GitHub 通过 GitHub Advanced Security(GHAS)让发现和修复这些问题变得前所未有的简单,这是一个帮助你提升并维护代码质量的产品套件。在公共仓库中,你可以使用 Dependabot、代码扫描、密钥扫描和 Copilot Autofix。如果你想了解更多不同功能,可以查看我们关于 GHAS 的文档。或者继续阅读,我们将带你逐步了解如何启用和使用其中的一些功能。

GitHub Advanced Security(GHAS)

https://github.com/security/advanced-security?utm_source=blog-episode-3&utm_medium=blog&utm_campaign=gfb-s3-2026/?wt.mc_id=3reg_webpage_reactor

关于 GHAS 的文档

https://docs.github.com/get-started/learning-about-github/about-github-advanced-security?utm_source=blog-episode-3&utm_medium=blog&utm_campaign=gfb-s3-2026/?wt.mc_id=3reg_webpage_reactor

启用安全功能

第一步是确保 GHAS 已开启。

  1. 进入你的仓库。

  2. Settings页签。

  3. 在左侧栏中 “Security” 下选择 Advanced Security。

  4. 在 “Dependabot” 下,启用 “Dependabot alerts” 和 “Dependabot security updates”。

  5. 向下滚动到 “Code scanning” 部分。

  6. 对于 “CodeQL analysis”,选择 Set up,然后在上下文菜单中选择 Default。

  7. 会出现一个新窗口。选择 Enable CodeQL,无需更改任何设置。

  8. 向下滚动到 “Secret Protection” 并启用它。

这些工具默认在公共仓库中可用。如果你有私有仓库,则需要 GHAS 许可证。在窗口顶部选择 Security 页签,进入该仓库的安全主页。在这里,你将看到你已启用的各种 GHAS 工具选项。你可以在这里查看暴露的密钥、存在漏洞的依赖项以及存在风险的代码路径的警报。现在让我们更详细地看看这些工具。如果你想查看各种警报的显示方式,请记住我们还提供了本文的在线视频版本。

本文的在线视频版本

https://youtu.be/zhxXaFzzJYA?si=2IQ2lHHNFyEEjguH/?wt.mc_id=3reg_webpage_reactor

使用密钥扫描

GitHub 可以通过密钥扫描帮助你保护敏感信息。如果你不小心提交了 API key 或 token,密钥扫描会在左侧栏的 Security 标签下的 Secret scanning中标记出来。当你看到警报时,点击具体警报的标题,可以查看检测到的密钥以及它出现的位置。

解决该暴露密钥的一种方法是将其撤销。撤销密钥意味着禁用旧的密钥,使其无法再被使用。通常你需要在该密钥所属的平台上生成一个新密钥,例如 Azure 或 Stripe。

GitHub 无法自动为你撤销密钥。这一步需要你自己完成。不过,密钥扫描会提供早期预警,避免泄露的密钥被真正利用。

在你撤销密钥后,可以通过以下步骤关闭该密钥扫描警报:

  1. 在窗口右上角选择 Close as。

  2. 在上下文菜单中选择 Revoked。

  3. 点击上下文菜单底部绿色的 Close alert按钮。

什么是 Dependabot?

Dependabot 是一个代码扫描工具,帮助你保持依赖项为最新状态。还记得我们之前提到的,你会继承项目中引入的每个库的漏洞吗?Dependabot 通过在发现项目依赖库存在漏洞时发出警报来帮助解决这个问题。

要查看 Dependabot 警报,请返回到仓库中的 Security页签。当你点击某个 Dependabot 警报时,它会带你进入对应的 pull request,以便你更新你的库。在 pull request 页面中,如果向下滚动,你可以通过选择 GitHub Advisory Database中的 See advisory查看触发警报的具体安全公告。

在 pull request 页面顶部,点击绿色的 Review security update按钮来审查版本更新。在合并建议更改之前,你应该始终进行审查。如果一切看起来都没问题,就可以继续合并该 pull request。

Dependabot 会自动将 GitHub 安全公告转化为 pull request,这样你就不需要手动跟踪常见漏洞与暴露。

准备好进阶了吗?

前往 GitHub Skills,尝试一些挑战,了解更多关于 GitHub Advanced Security 的内容并提升你的技能。这些挑战是一种有趣且互动的学习安全知识的方式!

  • 密钥扫描入门

    https://github.com/skills/introduction-to-secret-scanning?utm_source=blog-episode-3&utm_medium=blog&utm_campaign=gfb-s3-2026/?wt.mc_id=3reg_webpage_reactor

  • 保护仓库的供应链安全

    https://github.com/skills/secure-repository-supply-chain?utm_source=blog-episode-3&utm_medium=blog&utm_campaign=gfb-s3-2026/?wt.mc_id=3reg_webpage_reactor

  • CodeQL 入门

    https://github.com/skills/introduction-to-codeql?utm_source=blog-episode-3&utm_medium=blog&utm_campaign=gfb-s3-2026/?wt.mc_id=3reg_webpage_reactor

你还可以查看 vulnerable-node仓库,以获得更多使用这些工具的实践经验。

vulnerable-node

https://github.com/cr0hn/vulnerable-node?utm_source=blog-episode-3&utm_medium=blog&utm_campaign=gfb-s3-2026/?wt.mc_id=3reg_webpage_reactor

响应 CodeQL 警报

CodeQL 是用于扫描代码并生成代码扫描警报的引擎(你可以在 Security 页签下找到这些警报)。CodeQL 并非代码扫描工具。它更强大,因为它能够理解数据流,展示输入从哪里开始以及最终流向哪里。

因此,代码扫描警报可以覆盖广泛的潜在场景。当你选择一个代码扫描警报时,它会解释问题,并在可能的情况下提供额外信息,例如修复建议以及示例,用来说明问题和可能的解决方案。

当你理解了警报之后,可以通过以下步骤使用 Copilot Autofix来解决问题:

  1. 在警报顶部选择 Generate fix按钮。

  2. Copilot 会建议一个补丁。审查更改并确认它满足你的需求。

  3. 点击底部绿色的 Commit to new branch按钮。

  4. 在新的弹出窗口中,选择 Open a pull request选项,然后点击 Commit change。

  5. 像处理任何其他 pull request 一样处理这个自动生成的 pull request:进行审查并合并更改。请记住,虽然 Copilot 可以加速安全修复,但整个过程始终由你掌控。

Copilot Autofix

https://docs.github.com/code-security/responsible-use/responsible-use-autofix-code-scanning?utm_source=blog-episode-3&utm_medium=blog&utm_campaign=gfb-s3-2026/?wt.mc_id=3reg_webpage_reactor

接下来

恭喜!你现在已经学会如何使用 GitHub Advanced Security 来自信地检测并修复代码中的漏洞。公共仓库可以免费使用这些 GHAS 工具,因此你可以从一开始就保护你的项目安全。你可以随时通过 GitHub Skills 或 ‘vulnerable-node’ 仓库来测试你的技能。

如果你想获取更多信息,我们还提供了大量文档。以下是一些可以帮助你入门的链接:

  • 关于密钥扫描

    https://docs.github.com/code-security/concepts/secret-security/about-secret-scanning?utm_source=blog-episode-3&utm_medium=blog&utm_campaign=gfb-s3-2026/?wt.mc_id=3reg_webpage_reactor

相关内容

热门资讯

“爱心茶摊”走进鼓山景区   送清凉小分队人员为景区户外工作者送上矿泉水。记者 郑帅 摄  10日下午,福州市鼓山景区游客服务...
爱心企业联动 致敬城市守护者   “谢谢你们送来的爱心礼包和爱心水,真好!”10日,收到“爱心茶摊”送清凉小分队送来的解暑物资,参...
“闽江之光”致敬教师 9月10日是第42个教师节。当晚,闽江畔的海峡金融街商务区楼宇化身巨幅光影画布,“闽江之光”灯光秀特...
“爱心茶摊”便民义诊活动周日举...   “爱心茶摊”便民义诊活动周日举行  可享义诊、义剪、茶饮等福利传承公益初心,传递城市温度。13日...
“福州造”钢管为省重点项目铸就...   近日,福州生产的定制钢管,运往全国首例长距离海底曲线顶管项目现场。  据悉,位于连江经济开发区可...
福州核电技术员捐献造血干细胞 ... 10日,张川成功捐献造血干细胞。  9月10日,福州核电技术员张川躺在福建省肿瘤医院的采集床上,用捐...
凝聚警检合力 马尾公检召开联席...   近日,福州市马尾区检察院与福州市公安局马尾分局召开侦查监督与协作配合办公室联席会议,进一步推进侦...
“双节”临近 近300场活动将...   中秋、国庆“双节”临近,三坊七巷、朱紫坊、上下杭、南公河口、梁厝五大历史文化街区,将推出近300...
2026海洋装备产业发展伙伴大... 9日,2026海洋装备产业发展伙伴大会暨第四届海洋装备博览会行业合作伙伴发布活动在福州举行。活动以“...
花香寄师恩 致敬引路人   花香寄师恩 致敬引路人福州“心青年”亲手制花献礼教师节  “老师,节日快乐!”9月10日是第42...
麦顶小学周边交通拥堵 系列举措... 每天上学、放学时段,接送学生的家长、车辆短时间聚集,导致麦顶小学周边街巷车辆积压,交通拥堵。为解决这...
“心青年”为特教老师送上节日祝...   9月10日,教师节如期而至。福州小善公益社区特教课堂的心智障碍学员手捧鲜花,来到福州盲校,将鲜花...
福州疾控专家:接种流感疫苗正当...   9月校园重启,孩子们回归课堂。同时,一个“不速之客”——流感病毒,也悄然进入活跃期。10日,福州...
福州新房水表开户实现“零跑腿” 近日,市民陈先生坐在新房的客厅里,用电脑打开“福建省网上办事大厅”,在福州市新房购置“一件事”系统上...
福州教师俞榕清捧回国家级家政大...   这个教师节,福建华南女子职业学院教师俞榕清收获了从教16年来最好的一份教师节礼物——摘得全国巾帼...
“撸网贷”帮朋友?当心借钱变“... 朋友急用钱,能否从网贷平台借些钱再转借给朋友?这种看似“两肋插刀”的救急之举,实则暗藏危机。近日,闽...
公示中!福建312人拟获评高级... 近日,福建省工业和信息化厅网站发布公示,312人拟获高级经济师任职资格,一起来看——  根据《职称评...
中国海警舰艇编队在我钓鱼岛及其... 9月10日,中国海警登步舰编队在我钓鱼岛及其附属岛屿领海内维权巡航。这是中国海警依法开展的维权巡航活...
歌声寄情 福州教师节活动温情拉...   9月10日是我国第42个教师节,近期,福州各校开展多项温情感恩活动。