代码质量和安全使用代码检测提升

简介: 云效代码管理提供多种内置扫描服务,确保代码质量与安全性。面对编码不规范、敏感数据泄露、依赖项安全漏洞等问题,该服务从代码提交到合并全程保驾护航。不仅依据《阿里巴巴 Java 开发手册》检查编码规范,还利用先进算法智能推荐代码补丁,检测敏感信息及依赖包漏洞。用户可在每次提交或合并请求时选择自动化扫描,快速定位并解决问题,提升研发流程的稳定性与安全性。立即体验云效代码管理,保障代码健康。

1 、用户的诉求或问题
•编码不规范:开发者专业度有限,特别是依赖外包团队的情况,业务代码通常没有通过细致的设计,也很难保证兼容性和扩展性,存在隐藏的缺陷和故障风险;

•敏感数据泄露:开发者缺乏安全意识,企业的敏感信息直接编写到代码中,可能造成敏感信息的外流,进而使得不法分子有机可乘,造成企业损失;

•依赖项存在安全漏洞:代码中免不了引入二方或三方的依赖包,特别是引入开源依赖包的场景下,很可能自身代码保护周全,但是依赖的代码存在安全漏洞,使得不法分子可以通过这些漏洞发起攻击;代码效果参考:http://www.ningluan.com/sitemap/post.xml

•代码优化:开发者编写了代码,期望能够得到专业的代码优化建议;

2、开启代码扫描服务
云效代码管理内置了多种扫描服务,为了保证每次提交都能及时的获取扫描结果,建议在创建代码库后,立即前往代码库「设置」-「集成与服务」开启自动化扫描服务。

说明
立即体验:云效代码管理

扫描1
点击期望开启服务右侧的开关,确认授权后服务成功启用。

扫描2
启用时可以选择触发方式:提交触发或合并请求触发,部分服务仅支持一种触发方式。

「提交触发」在每次提交后,将自动触发相关分支的全量扫描,即扫描分支下的所有内容;

「合并请求触发」在创建或更新合并请求后,将自动触发源/目标分支的增量扫描,即扫描源/目标分支变更的内容(Diff);

如不再使用扫描服务,点击服务右侧开关关闭即可。

接下来依次介绍上述四种扫描服务:

(1)代码质量——Java 开发规约

《阿里巴巴 Java 开发手册》是阿里内部 Java 工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL 规约、工程规约、安全规约等,这是近万名阿里 Java 技术精英的经验总结,并经历了多次大规模一线实战检验及完善。根据约束力强弱,规约依次分为强制、推荐、参考三大类:

【强制】必须遵守。是不得不遵守的约定,违反本约定或将引起严重的后果。

【推荐】尽量遵守。长期遵守这样的规则,有助于系统稳定性和合作效率的提升。

【参考】充分理解。技术意识的引导,是个人学习、团队沟通、项目合作的方向。

Java 代码规约扫描使用《阿里巴巴 Java 开发规约》插件扫描 Java 规约问题。

(2)代码质量——代码补丁智能推荐

缺陷检测和补丁推荐几十年来一直是软件工程领域的难题,又是研究者和一线开发者最为关心的问题之一,这里讲的缺陷不是网络漏洞、系统缺陷,而是隐藏在代码中的缺陷。帮助开发者识别这些缺陷,并进行修复,能够大幅提升软件质量。

基于业界和学术界较为流行的缺陷检测手段,并分析和规避其局限性,云效代码管理的算法工程师们提出了一种新的算法,实现更加精准和高效的分析代码缺陷并推荐优化方案,该算法已被国际软件工程大会(ICSE)收录。

代码补丁推荐服务目前应用于合并请求的代码自动扫描场景,扫描输出优化推荐方案,问题等级仅包含 MAJOR 类型:建议修复的代码缺陷。

(3)代码安全——敏感信息检测

敏感信息检测功能,可以检测代码库中的敏感凭证和密钥,比如 API keys 等信息。集成在合并请求代码评审阶段,可以有效防止敏感信息意外提交。

敏感信息问题等级分为:BLOCKER, CRITICAL, MAJOR

BLOCKER: 通过规则扫描出来的可能性很高的明文问题;

CRITICAL: 通过信息熵模型得出的可能性较高的潜在问题;

MAJOR: 用于测试的敏感信息字段;

(4)代码安全——依赖包漏洞检测

为了杜绝安全隐患,企业需要做到以下三点:

1.了解工程都使用了哪些依赖包;

2.删除不需要的依赖包;

3.检测并修复当前依赖的已知漏洞;

依赖包漏洞检测服务帮助企业方便的检查其工程依赖包的安全性。

依赖包漏洞等级分为:BLOCKER, CRITICAL, MAJOR,等级划分根据国家漏洞数据库CVSS 分数评估制定。

BLOCKER: 高危漏洞,建议立即修复;

CRITICAL: 中危漏洞,建议尽快修复;

MAJOR: 低危漏洞;

3、提交代码执行检测
为了保证代码问题不被引入生产环境,越早进行检查,引入的风险越小。因此,建议能够在每次提交时都进行代码检测,从起点发现并扼杀问题,保障后续应用研发流程的稳定性。

开启检测服务时,勾选触发方式的「代码提交触发扫描」,如图①:

扫描4
此后库内的每次提交都会自动执行对应的自动化检测,检测当前新提交的所有文件,可在源文件或提交页面查看检测结果:

扫描5扫描6

可点击检测服务展开问题详情查看,Blocker 级别的问题建议立即解决,这类问题容易引起故障或安全漏洞:

扫描6
4、合并请求执行检测
开启检测服务时,勾选触发方式的「合并请求触发扫描」,如图②:

扫描7
此后库内的每次创建合并请求或合并请求源分支有新提交,都会针对变更文件自动执行对应的自动化检测,保证新增期望合并至目标分支的代码质量和安全。

可在合并请求列表和详情页面查看检测结果:

saomiao1扫描2
点击合并请求详情的检测结果详情,可以跳转代码行内查看具体问题代码:

saomiao3
5、安全检测
针对安全类问题,通常需要统计或追溯历史,因此云效代码库中提供了专门的安全模块,用于承载检测出的全部问题,并记录了已解决的历史数据。

若未开启过安全类检测服务,可以通过安全模块前往代码库设置-「集成与服务」中开启。

说明
立即体验:云效代码管理

saomiao1.1
开启后,可以在当前页查看各分支检测出的安全问题:

saomiao1.2
同样,可点击问题名称查看详情和推荐的解决方案:

saomiao1.3
TIPS:针对敏感信息检测,若部分文件希望跳过扫描,可以使用文件白名单的功能,白名单内的文件将不被检测:

相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
相关文章
|
11月前
|
人工智能 自然语言处理 JavaScript
用 LLM 辅助性能测试报告生成
性能测试报告通常包含测试概述、方案说明、结果分析、问题定位、优化建议及上线评估等内容。报告编写面临数据分析复杂、撰写耗时、经验依赖等问题。引入大型语言模型(LLM),可实现报告智能生成,提升效率与专业度。LLM具备自然语言生成、数据归纳、专家知识迁移等能力,可适配多格式、多语言输出。通过构建LLM辅助的报告生成引擎,结合Prompt设计,可高效输出结构化报告。实践表明,LLM在测试结论总结、瓶颈分析与优化建议方面表现优异,为性能测试智能化升级提供有力支撑。
714 0
|
8月前
|
人工智能
千问APP公测上线!用最强模型打造最佳个人AI助手
千问APP公测上线!用最强模型打造最佳个人AI助手
994 0
|
人工智能 前端开发 Java
“最近我给有代码洁癖的同事墙裂安利了通义灵码”
通义灵码2.5.0版本现已全面支持Qwen3,采用混合专家架构,参数量仅为DeepSeek-R1的1/3,是国内首个“混合推理模型”。它在性能评测中超越了DeepSeek-R1、OpenAI-o1等国际主流模型,并全面支持MCP能力,集成国内最大MCP中文社区。作为程序员体验后发现,通义灵码可通过简单指令生成完整项目代码,包括前后端、接口调用等,大幅降低开发门槛。文中通过两个Demo展示了其强大功能:一是聚合多平台热榜数据并推送微信通知;二是基于高德和12306 MCP生成旅游攻略HTML页面。整个过程无需手动编写代码,推荐开发者尝试。
779 47
|
搜索推荐 vr&ar
虚拟现实技术在旅游行业的应用探索
虚拟现实技术在旅游行业的应用探索
368 1
|
负载均衡 应用服务中间件 nginx
如何使用nginx实现负载均衡?
如何使用nginx实现负载均衡?
|
人工智能 搜索推荐 测试技术
AI 辅助编程的效果衡量
本文主要介绍了如何度量研发效能,以及 AI 辅助编程是如何影响效能的,进而阐述如何衡量 AI 辅助编程带来的收益。
|
关系型数据库 MySQL 开发工具
Docker安装mysql8.0
Docker安装mysql8.0
1184 0
|
资源调度 Kubernetes Cloud Native
德邦证券BizDevOps最佳实践:打造科技型投行和财富管理平台
在数字化转型的浪潮的席卷下,德邦证券正思考如何更进一步地将业技进行结合以更好地支撑业未来发展的需求。
3252 3
德邦证券BizDevOps最佳实践:打造科技型投行和财富管理平台