技术速递|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

相关内容

热门资讯

车辆避让失控撞杆 消防紧急营救... 4月6日14时02分,周口市消防救援支队指挥中心接到群众报警,川汇区中州路与太清路交叉口西200米处...
【巴林重新开放领空】当地时间8... 【巴林重新开放领空】当地时间8日晚,巴林民航部门宣布,在充分评估地区局势发展之后,巴林领空重新开放。...
【中央电视台】保障智能育秧安全... 眼下正值早稻育秧关键期,湖北荆州公安县作为湖北省唯一的国家级杂交水稻制种大县,依托现代化育秧工厂,全...
中建八局第三建设申请吊车上楼板... 国家知识产权局信息显示,中建八局第三建设有限公司申请一项名为“一种吊车上楼板的安全性验证方法、系统及...
聚焦北大荒丨八五六:开展对务工... 近日,北大荒农业股份八五六分公司对外来务工人员进行安全教育,扎实织密春季农业安全防护网,为春耕生产保...
原创 法... 鲁网4月8日讯(记者 张刚 通讯员 宋言芳)清明假期归来,校园秩序井然。为进一步强化学生法治观念与安...
中国水上交通安全协会低空应急分... 中新网广州4月8日电 (记者 王坚)中国水上交通安全协会低空应急分会成立大会8日在广州举行。会上举行...
家用应急包怎么收纳?选什么应急... 本文核心要点先看这里: 收纳前先清理过期物品,能空出至少30%的空间 选对应急包本身比收纳技巧...
强化消防工作地方事权属性——详... 新华社北京4月8日电 题:强化消防工作地方事权属性——详解《关于加强基层消防工作的意见》 新华社记者...
技术速递|GitHub 初学者... 作者:Kedasha Kerr 排版:Alan Wang 学习如何使用 GitHub Advance...
海大清能船舶申请船用氢能发电装... 国家知识产权局信息显示,海大清能船舶(大连)有限公司申请一项名为“一种船用氢能发电装置及其安全监测方...
雷某乐、黄某亮、赖某根等人,清... 假期踏青出游、走亲访友本是相聚的温馨时刻 可若在推杯换盏、把酒言欢后 拿起了车钥匙 “家很近,...
赶紧卸载!这些App被通报 依据网络安全法、个人信息保护法等法律法规,经公安部计算机信息系统安全产品质量监督检验中心检测,37款...
外交部:中美经贸关系本质上是互... 4月8日,外交部发言人毛宁主持例行记者会,有记者就中美经贸关系提问。 毛宁表示,中美经贸关系本质上...
未成年骑车伤人起纠纷!法院调解... 2025年7月,未满十八周岁的吴小某驾驶普通摩托车行驶时刮撞行人刘某某,造成刘某某受伤的交通事故。事...
中国乒协公布伦敦世乒赛团体名单... 据乒乓世界,4月8日,中国乒协在官网公布了2026年国际乒联伦敦世界乒乓球团体锦标赛决赛参赛运动员名...
全国首场!“致敬英雄——纪念吴... 福州新闻网4月8日讯(记者 李白蕾/文 石美祥/摄)由福州市人大常委会办公厅、市委老干部局主办,市人...
伊朗宣布胜利 据央视新闻,当地时间4月8日,伊朗最高国家安全委员会在声明中向全体伊朗人民祝贺胜利,并强调在胜利的各...
央视新闻关注福州:从种菜到研学... 春季到来,不少人走进田园,通过劳作感受春日生机。在不少地方,“共享菜园”开始流行。“共享菜园”不只是...
长丰县:联合执法严监管,消防产... 为切实规范消防产品生产秩序,严厉打击假冒伪劣消防产品,从源头守住消防安全底线,近日,长丰县市场监督管...