00:00
大家好,这次给大家讲解如何在CMB使用TCA代码分析。首先打开银原声构建主页。在右上角进入帮助文档。再点击进入开发者插件市场。搜索TCA或代码分析。就可以找到腾讯云代码分析TCA插件的使用指引文档详细介绍了TCA在CNB中快速分析和深度分析的操作方法。下面我们开始演示如何使用TCA插件进行快速分析。首先进入我的CNB代码仓库。我们在Dave分支上开发。通过银原生远程开发操作。这里选择web IDE打开。我们进入deaf分支。在代码库跟目录下创建一个cnb em文件。如果之前已经添加过其他的CNB插件,已经有这个文件了,可以直接编辑。
01:06
在TCA插件文档里直接复制文件内容,粘贴到代码仓库刚创建的文件里。然后我们在这个仓库里进行日唱发。这里提前准备了一个代码文件。将代码粘贴完成后,我们提交代码。进入云原生构建页面,可以看到已经触发了任务。点击进入可以看见正在进行代码分析。分析过程中,我们来看一下cnb emo里配置的参数。该文件是CNB云原生构建的流水线的配置。处罚分支明配置的是所有分支均触发的。这里选择的是push出发。后面有两个stages。第一个stage的功能是通过CNB官方插件git change list来获取代码库,变更文件,将该文件存放在change TT内。
02:11
第二个stage的功能是TCA代码分析。在这一步,Change TT文件会通过from file参数传递给TCA插件进行增量代码分析。如果去掉该参数,就会执行全量分析。Block参数是控制流水线是否阻塞的。如果有代码问题或分析异翅阻塞流水线,如果不希望阻塞流水线,该参数可以设置为false。该参数推荐设置为true,严格把控代码问题。下面3个参数是邮件报告的功能,后面会演示操作并讲解这些参数。进入云原生构建页面,可以看到跑完了。扫描结果为不通过,有一个待处理问题。在上面的日志中,也展示了代码问题的详情。
03:02
详细展示了报错的代码行、追溯行以及问题原因。根据分析报告,我们可以对照代码来查看。问题所在的第14行是一个SQL执行命令,网上追溯可以看到参数username和password是外部输入的,需要对外部输入的参数进行校验,否则会造成SQL注入漏洞,存在安全隐患。所以通过TCA插件可以快速发现代码漏洞,并通过阻塞流水线及时发出提醒返回因原生构建页面。可以看到生成了一个Jason报告和HTML报告。HTML报告是可以发送至邮箱的,后面会演示并讲解邮件报告的参数和功能。进入CMB emo文件,我们来修改一下参数,把触发配置修改为po request触发实现提交合入的时候触发分析。
04:00
我们来看到邮件报告的参数,需要配置邮箱参数,发件人授权码,收件人建议使用QQ邮箱。这里发件人和收件人可以用相同的邮箱地址。授权码从QQ邮箱配置里获取。进入TCA帮助文档。点击链接可跳转QQ邮箱操作指引这里就不多做演示了,授权码属于个人敏感信息,如果是多人合作的代码仓库,建议配置在密钥仓库后再引用。返回IDE开发页面。我们采用从密钥仓库引用的方式,先在cnb mmo中删除授权码参数。提交代码。回到CMD主页,从右上角加号下拉菜单进入创建仓库页面,输入仓库名等信息,选择妙仓库类型,点击创建。
05:00
创建完成后,新建一个文件来存放邮箱授权码。第一个参数填写的是邮箱授权码,第二个参数是允许TCA插件镜像使用,第三个参数是允许访问的代码仓库,请按需修改为要扫描的代码仓库。最后一个参数是允许访问的事件类型,这里为所有事件。输入文件名,点击确认提交。进入刚才创建的emo文件,复制文件地址。通过settings from参数引用妙仓库配置提交代码。返回因原生构建页面,因为我们修改为合并请求触发,这时候还未触发。我们创建一个合并请求。将div分支合并到main分支中。在银原生构建页面下可以看到已经触发了分析。等待过程中,我们回到文档,可以看到邮件报告还支持其他配置参数。如果使用QQ邮箱作为发件人,邮箱服务参数是不需要配置的,如果使用其他邮箱作为发件人,需要填写对应的邮箱服务参数。
06:16
还可以通过这个参数配置邮件抄送人,抄送人和收件人都是支持配置多人的,通过列表格式填写。返回页面可以看到已经完成分析。邮件成功发送。让我们进入邮箱查看。该邮件报告也简略写明了分析结果。并且发送了HTML报告,点击下载进入后,可以很清晰明了的看到分析情况。在该页面还有一个新的提示信息,已添加到pull request评论,这是我们刚才修改添加的功能,我们回到合并请求页面。进入这次的合并请求。可以看到刚才的扫描结果,自动添加了评论,方便查看。
07:04
以上就是使用TCA插件进行快速分析的演示和讲解。快速分析使用的是默认的代码安全分析规则包,无需配置分析方案,开箱即用。如果想要自定义分析方案和质量门禁,持续跟踪代码问题,对代码进行综合分析和度量,那就需要进行深度分析,可以参考插件文档的深度分析部分进行配置。我们也会在下一期视频中演示如何使用深度分析,敬请期待。
我来说两句