广电行业自动化代码分析方法技术

技术编号:28036232 阅读:26 留言:0更新日期:2021-04-09 23:18
本发明专利技术公开了广电行业自动化代码分析方法,具体包括如下步骤:101)动态检测步骤、102)信息检测步骤、103)代码扫描步骤、104)代码分析步骤、105)报告步骤;本发明专利技术提供实现广电行业对于代码漏洞、BUG、规范性、安全性等规范要求的工具化,实现生产环境代码扫描常态化制度化,极大提升了代码质量和安全性的广电行业自动化代码分析方法。

【技术实现步骤摘要】
广电行业自动化代码分析方法
本专利技术涉及代码分析领域,更具体的说,它涉及广电行业自动化代码分析方法。
技术介绍
随着IT的进步,对于广电行业的服务平台提出了更高的质量和安全性要求,但目前部分服务平台由外包团队完成,代码的规范性和质量缺乏完备的保障。目前对于代码质量的管理主要有三种技术:1、定期组织专家对服务平台的代码进行评审;2、提供开发环境的代码规范性检查插件,由程序员开发过程中进行自检;3、制定完备的测试验收流程,对最终产品进行验收。但现有技术存在许多客观缺点:缺点一:组织专家评审费时费力,团队开发代码量大,无法做到全部审查;缺点二:代码规范性检查插件只针对规范性进行校验,无法覆盖到代码漏洞、安全性等其他问题;缺点三:测试验收作为项目最终的把关可有效保障代码质量,但无法涉及到代码的规范性,后期发现缺陷,修复的成本也相应提高。
技术实现思路
本专利技术克服了现有技术的不足,提供一种针对广电行业的自动化代码分析方法。本专利技术的技术方案如下:广电行业自动化代码分析方法,具体包括如下步骤:101)动态检测步骤:广电行业项目的开发人员将含有代码分析任务脚本文件的本地代码提交至远程公共代码仓库;代码一经提交至仓库,由CI/CD工具动态检测到代码更新情况,并拉取相应广电行业项目的各子系统的源代码至指定代码分析仓库目录下;102)信息检测步骤:通过脚本文件获取并记录步骤101)提交的本次更新的相关信息,包含通用信息和项目相关信息;通用信息包括本次代码提交的人员信息、时间信息;项目相关信息包括本次提交代码的项目名称、代码分支信息、日志记录;103)代码扫描步骤:步骤102)中的代码同步至远程公共代码仓库后,CI/CD工具会自动触发流水线进行代码扫描任务;代码扫描模块接收到扫描任务启动指令后,则自动从代码扫描模块获取针对广电行业业务规范定制的代码扫描规则;代码扫描模块获取到相应的代码扫描规则后,对远程公共代码仓库路径下的工程进行源代码扫描;104)代码分析步骤:步骤103)的代码扫描模块完成扫描任务后即调起代码分析模块,依据代码分析模块中的分析规则对上一步中扫描的源代码进行漏洞、BUG、代码规范性、安全热定内容的逐项代码分析,并生成分析日志文件;105)报告步骤:步骤104)的代码分析结束后,分析报告模块针对广电行业规范要求自定义质量阈值生成个性化、可视化的扫描报告,报告包括代码扫描的覆盖率情况、代码中BUG的数量比例、代码中漏洞的数量比例、代码的多余重复率、代码不规范的实例数量比例、单个类/接口/方法中的行数、是否写了注释、代码的认知复杂度、自动生成的问题统计图表、问题代码的相应解决意见、建议;报告生成后,以单个报告级别的RBAC用户角色权限设计方式分离权限,而后通过hook的方式将报告发送给开发人员,开发人员根据报告内容修复源代码中的缺陷,即可再次提交代码重复步骤101),直至修复所有缺陷。进一步的,步骤103)中的代码扫描规则包含以下五部分:(1)代码漏洞:是指代码中可能存在会对系统安全、性能方面产生重大影响的问题;(2)BUG:是指代码中可能存在会对业务逻辑产生影响的语法异常问题;(3)规范性:是指代码中存在的语法不符合业界通用的语言规范问题;(4)安全热点:是指代码中的一些安全敏感问题;(5)SQL语句:是指SQL语句的使用规范问题。本专利技术相比现有技术优点在于:本专利技术针对广电行业的代码规范及安全性等要求,自定义相应的扫描规则,该规则主要包含代码漏洞、BUG、规范性、安全热点、SQL语句等领域。对于代码分析结果进行量化分析,针对广电行业代码规范及安全性要求设定项目质量阈值,如设定漏洞阈值为0,即不允许漏洞存在,则当项目不满足该质量阈值要求时,在报告首页会以红色标注,同时在缺陷详情信息中提供修复建议,形成个性化、可视化的代码分析报告。本专利技术对于一段时间内代码分析结果进行统计分析,生成项目和开发人员代码质量的曲线图,通过纵向对比,体现代码质量的改进过程,通过横向对比,发现项目和开发人员之际代码质量的优劣,为项目决策提供依据。本专利技术实现广电行业对于代码漏洞、BUG、规范性、安全性等规范要求的工具化,实现生产环境代码扫描常态化制度化,极大提升了代码质量和安全性。统一团队开发代码规范,提升团队整体开发效率和质量,减少运维测试成本。附图说明图1为本专利技术的整体框架图;图2为本专利技术的代码扫描分析流程图;图3为本专利技术的代码分析规则开发框架图。具体实施方式下面结合附图和具体实施方式对本专利技术进一步说明。如图1至图3所示,广电行业自动化代码分析方法,具体包括如下步骤:101)动态检测步骤:广电行业项目的开发人员将含有代码分析任务脚本文件的本地代码提交至远程公共代码仓库(如git仓库)。代码一经提交至仓库,由CI/CD工具(例如GoCD、Drone、Jenkins等)动态检测到代码更新情况,并拉取相应广电行业项目的各子系统的源代码至指定代码分析仓库目录下。102)信息检测步骤:通过脚本文件获取并记录步骤101)提交的本次更新的相关信息,主要包含通用信息和项目相关信息。通用信息包括本次代码提交的人员信息、时间信息。项目相关信息包括本次提交代码的项目名称、代码分支信息、日志记录。103)代码扫描步骤:步骤102)中的代码同步至远程公共代码仓库后,CI/CD工具会自动触发流水线进行代码扫描任务。代码扫描模块接收到扫描任务启动指令后,则自动从代码扫描模块获取针对广电行业业务规范定制的代码扫描规则。代码扫描模块获取到相应的代码扫描规则后,对远程公共代码仓库路径下的工程进行源代码扫描。代码扫描规则包含以下五部分:(1)代码漏洞:是指代码中可能存在会对系统安全、性能方面产生重大影响的问题。例如,内存泄漏、加密算法失效等问题。(2)BUG:是指代码中可能存在会对业务逻辑产生影响的语法异常问题。例如,死循环、逻辑死锁、空指针异常等问题。(3)规范性:是指代码中存在的语法不符合业界通用的语言规范问题。例如:变量命名规则、类方法注释、注解使用等问题。(4)安全热点:是指代码中的一些安全敏感问题,例如:cookies的安全敏感,哈希数据的安全敏感等问题。(5)SQL语句:是指SQL语句的使用规范问题,例如:运算符的使用等问题。104)代码分析步骤:步骤103)的代码扫描模块完成扫描任务后即调起代码分析模块,依据代码分析模块中的分析规则对上一步中扫描的源代码进行漏洞、BUG、代码规范性、安全热定等内容的逐项代码分析,并生成分析日志文件。105)报告步骤:步骤104)的代码分析结束后,分析报告模块针对广电行业规范要求自定义质量阈值生成个性化、可视化的扫描报告,报告主要包含以下方面:(1)代码扫描的本文档来自技高网...

【技术保护点】
1.广电行业自动化代码分析方法,其特征在于,具体包括如下步骤:/n101)动态检测步骤:广电行业项目的开发人员将含有代码分析任务脚本文件的本地代码提交至远程公共代码仓库;代码一经提交至仓库,由CI/CD工具动态检测到代码更新情况,并拉取相应广电行业项目的各子系统的源代码至指定代码分析仓库目录下;/n102)信息检测步骤:通过脚本文件获取并记录步骤101)提交的本次更新的相关信息,包含通用信息和项目相关信息;/n通用信息包括本次代码提交的人员信息、时间信息;项目相关信息包括本次提交代码的项目名称、代码分支信息、日志记录;/n103)代码扫描步骤:步骤102)中的代码同步至远程公共代码仓库后,CI/CD工具会自动触发流水线进行代码扫描任务;/n代码扫描模块接收到扫描任务启动指令后,则自动从代码扫描模块获取针对广电行业业务规范定制的代码扫描规则;代码扫描模块获取到相应的代码扫描规则后,对远程公共代码仓库路径下的工程进行源代码扫描;/n104)代码分析步骤:步骤103)的代码扫描模块完成扫描任务后即调起代码分析模块,依据代码分析模块中的分析规则对上一步中扫描的源代码进行漏洞、BUG、代码规范性、安全热定内容的逐项代码分析,并生成分析日志文件;/n105)报告步骤:步骤104)的代码分析结束后,分析报告模块针对广电行业规范要求自定义质量阈值生成个性化、可视化的扫描报告,报告包括代码扫描的覆盖率情况、代码中BUG的数量比例、代码中漏洞的数量比例、代码的多余重复率、代码不规范的实例数量比例、单个类/接口/方法中的行数、是否写了注释、代码的认知复杂度、自动生成的问题统计图表、问题代码的相应解决意见、建议;/n报告生成后,以单个报告级别的RBAC用户角色权限设计方式分离权限,而后通过hook的方式将报告发送给开发人员,开发人员根据报告内容修复源代码中的缺陷,即可再次提交代码重复步骤101),直至修复所有缺陷。/n...

【技术特征摘要】
1.广电行业自动化代码分析方法,其特征在于,具体包括如下步骤:
101)动态检测步骤:广电行业项目的开发人员将含有代码分析任务脚本文件的本地代码提交至远程公共代码仓库;代码一经提交至仓库,由CI/CD工具动态检测到代码更新情况,并拉取相应广电行业项目的各子系统的源代码至指定代码分析仓库目录下;
102)信息检测步骤:通过脚本文件获取并记录步骤101)提交的本次更新的相关信息,包含通用信息和项目相关信息;
通用信息包括本次代码提交的人员信息、时间信息;项目相关信息包括本次提交代码的项目名称、代码分支信息、日志记录;
103)代码扫描步骤:步骤102)中的代码同步至远程公共代码仓库后,CI/CD工具会自动触发流水线进行代码扫描任务;
代码扫描模块接收到扫描任务启动指令后,则自动从代码扫描模块获取针对广电行业业务规范定制的代码扫描规则;代码扫描模块获取到相应的代码扫描规则后,对远程公共代码仓库路径下的工程进行源代码扫描;
104)代码分析步骤:步骤103)的代码扫描模块完成扫描任务后即调起代码分析模块,依据代码分析模块中的分析规则对上一步中扫描的源代码进行漏洞、BUG、代码规范性、安全热定内容的逐项代码分析,并生成分...

【专利技术属性】
技术研发人员:乔小燕肖兴祥张云霞朱航明徐志望
申请(专利权)人:华数传媒网络有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1