当前位置:首页 > 公众号精选 > strongerHuang
[导读]在GitHub发布项目之前,你可以用免费的官方代码扫描程序来检查Bug了。编程很难,难就难在常有Bug而不自知。

关注、星标公众,不错过精彩内容

作者:蛋酱

来源:机器之心


在 GitHub 发布项目之前,你可以用免费的官方代码扫描程序来检查 Bug 了。


编程很难,难就难在常有 Bug 而不自知。有程序员调侃:「我不是在写代码,我是在写 Bug。」

从现在开始,你在 GitHub 上传的代码可以免费使用 Bug 筛查程序了。早发现,早报告,早诊断…… 以及早修复。

去年 9 月,GitHub 收购代码分析平台企业 Semmle,宣布将在 GitHub 的开发者工作流程中引入代码安全性流程。

代码扫描是 GitHub Advanced Security 计划中的一部分。今年 5 月的 Github Satellite 2020 大会,GitHub 率先推出了代码扫描功能的 beta 版,免费提供开源代码扫描功能。启用后,将对每个「git push」进行扫描以查找新的潜在安全漏洞,并将结果直接显示在请求中。

据 GitHub 介绍,在内测阶段,有 12000 个存储库接受了代码扫描,扫描次数达到 140 万次,总共发现了 20000 多个安全问题,包括远程代码执行(RCE)、SQL 注入和跨站脚本(XSS)的漏洞。开发者和维护人员在一个月内修复了 72% 的已报告安全问题,比例远高于业内统计的 32% 的 30 天内修复率。

经过几个月来众多开发者的的测试与反馈,九月的最后一天,GitHub 宣布「代码扫描」正式上线了。



目前,代码扫描面向公共存储库是免费的。此外,面向使用 GitHub Enterprise 团队,代码扫描功能是 GitHub Advanced Security 的一部分,能够帮助团队更早地查找出项目中的安全漏洞。


代码扫描功能首先是基于开发者的需求设计的,默认情况下,代码扫描不会提供过多的建议以免造成干扰,只会在保证安全的原则下运行,让开发者能够专注于手头的任务。

代码扫描与 GitHub Actions 或用户现有的 CI / CD 环境集成在一起,为团队工作提供最大的灵活度。它会在代码被创建时进行扫描,并拉取请求以及用户日常使用的其他 GitHub 服务中可操作的安全性审查,使得自动化安全检查成为工作流的一部分——这样做的目的是让漏洞无法进入生产环境。


该功能由目前功能最强大的代码分析引擎 CodeQL 提供支持。用户可以使用 GitHub 及社区创建的 2000 多个 CodeQL 查询,也可以创建自定义查询来查找和避免新的安全问题。

运行代码扫描程序可能需要几分钟:首先,在 GitHub 上找到存储库的主页,点击存储库名称的「Security」按钮。


然后点击「代码扫描」右侧的「Set up code scanning」:


在「Get started with code scanning」下,在 CodeQL 分析工作流或第三方工作流上单击「Set up this workflow」。


之后可以自定义代码扫描,通常可提交 CodeQL 分析工作流,无需对其进行任何更改。但许多第三方工作流程需要其他配置,因此在提交之前还需要读一下工作流程中的注释。使用「Start commit」下拉菜单,然后输入提交信息,并选择直接提交到默认分支,还是创建一个新分支。



检查流程运行完毕后,用户可以查看已识别的所有代码扫描警报的详细信息。比如触发警报的代码行以及警报的属性,还有何时首次出现该问题的地方,对于通过 CodeQL 分析确定的警报,还能看到有关如何解决问题的指引。


操作指南全文:

https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/enabling-code-scanning-for-a-repository


基于 SARIF 标准,代码扫描功能是可扩展的,用户可以将其他静态应用安全检查方案加入 GitHub 原生体验中,比如集成第三方扫描引擎以实现在单个界面查看所有安全检查的结果,或者通过单个 API 导出多个扫描结果。后续 GitHub 也会发布一些有关扩展功能和合作伙伴生态的信息。

同时,开发者们也会发现,GitHub 正悄悄完善「同性交友平台」的功能。就在今天,GitHub 还上线了「限制拉取仓库」、「关闭互动区」等功能。



比如你可以设置某个项目的互动时限,24 小时、3 天、一个月、半年内。这一幕好像有点熟悉……

不知这样的「朋友圈」,是不是符合程序员们的口味?

参考链接:

https://github.blog/2020-09-30-code-scanning-is-now-available/



推荐阅读:

可重入与不可重入函数的区别

操作系统产生死锁的原因和处理策略

Unicode UTF-8 UTF-16 UTF-32的关系


关注 微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。


长按前往图中包含的公众号关注

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

济南2024年6月12日 /美通社/ -- 近日,由浪潮云洲等单位起草制定的《工业互联网专业实训教学条件建设指南》团体标准(标准编号:T/CIE 181-2023 下称"《指南》")正式发布,为工业互联网专业实训教学条件...

关键字: 工业互联网 代码 联网技术 工业化

北京2024年5月16日 /美通社/ -- 5月10日晚,2024中国品牌日晚会在新华社全媒体矩阵播出,50个入选品牌在当晚揭晓,极氪名列其中,成为首度上榜的中国造车新势力代表。 图为北京时间5月10日 21:30 ,...

关键字: 吉利 COM HTML 代码

2023年10月18日,中国在第三届“一带一路”国际合作高峰论坛期间发布《全球人工智能治理倡议》,围绕人工智能发展、安全、治理三方面系统阐述了人工智能治理中国方案。

关键字: 人工智能 大模型 代码

学好电子技术基础知识,如电路基础、模拟电路、数字电路和微机原理。这几门课程都是弱电类专业的必修课程,学会这些后能保证你看懂单片机电路、知道电路的设计思路和工作原理;

关键字: 单片机 编程 电路设计

单片机编程需要使用专门的软件工具,这些工具能够帮助程序员编写、调试和烧录程序到单片机中。以下是一些常用的单片机编程软件:

关键字: 单片机 编程 软件工具

我们看到这么多的安全问题,部分原因在于我们对待安全的方式:安全性通常被认为是事后考虑的问题,是在开发结束时才添加到设备上的东西。然而,复杂的系统,尤其是嵌入式系统,有一个很大的攻击面,这让攻击者有机可乘,能够在“盔甲”上...

关键字: 代码 嵌入式系统 软件漏洞

Java语言和C语言是两种不同的编程语言,它们在语法、特性和应用领域上有许多差别。下面将详细介绍Java语言和C语言之间的差异以及它们各自的技术特点。

关键字: Java语言 C语言 编程

嵌入式系统是现代生活中无处不在的一部分。它们包括了我们的家电、汽车、智能手机、医疗设备等等。这些系统的工作必须高效、可靠,因为它们往往控制着生活中的关键方面。而C语言作为一种广泛用于嵌入式系统开发的编程语言,其质量和稳定...

关键字: 嵌入式系统 C语言 编程

在嵌入式系统开发领域中,C语言是使用最广泛的编程语言之一。它具有高效、灵活和可移植的特点,成为嵌入式系统设计师的首选语言。本文将介绍C语言编程的基本概念、特点以及在嵌入式系统开发中的应用。

关键字: 嵌入式系统 C语言 编程

在编程和计算中,运算符优先级是解释和计算表达式的一个关键因素。本文旨在阐述运算符优先级的概念、规则及其在表达式中的应用,以帮助读者更好地理解和运用运算符优先级。

关键字: 表达式 运算符 编程
关闭
关闭