首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【腾讯云代码分析】根治重复处理“无需处理”或“误报”

【腾讯云代码分析】根治重复处理“无需处理”或“误报”

作者头像
CodeDog
发布2024-11-29 09:29:54
发布2024-11-29 09:29:54
21800
代码可运行
举报
运行总次数:0
代码可运行
官网地址:(点击最下方【阅读原文】可直达)https://tca.tencent.com/

官网介绍:https://cloud.tencent.com/product/tcap 官方开源:https://github.com/Tencent/CodeAnalysis

国内镜像:https://git.code.tencent.com/Tencent_Open_Source/CodeAnalysis

背景介绍

代码分析发现了一些代码行有问题时,如果问题中出现“无需处理”或“误报”,则需要告知工具某规则需要过滤该行代码。

现实中代码易扩散到众分支或不同仓库,甚至文件系统以及其他代码管理仓。如在系统中配置代码行过滤,则难以跟踪管理,且与系统耦合,脱离系统后代码中无感知,丢失全部信息。

部分项目偶尔会调整工程结构,路径或文件名发生较大变更,那么系统中的配置会失效,问题再次暴露,需要再次在系统上处理过滤。

误报原因

一系列工具在静态不运行代码的情况下,缺少动态参数和逻辑,已知推测类规则会有误报,需要熟悉业务逻辑者确认。 例如代码中的一些关键密钥,技术上无法区分属于真实生产或调试或演示所用,需要熟悉业务者确认。 例如与IP地址结构一样的版本号被误报为IP地址等等。

综上,需要业务开发人员进行CodeReview确认,如果单纯使用工具系统标注,可能会多次出现重复操作“无需处理”或“误报”。

忽略方法

代码注释忽略问题

对某处代码进行针对性忽略。设置成功后,该规则对此处无效,不影响其他代码扫描结果。

注释格式:// NOCA:规则名称(忽略原因)

示例:

忽略单个规则:// NOCA:DirtyWord(设计如此:该语境下不是脏字)

忽略多个规则:// NOCA:DirtyWord(设计如此:该语境下不是脏字),invalid-name(其他:老代码先不改)

忽略文件型规则:可以在文件任一行添加注释,建议在文件首行或前几行添加注释。

代码语言:javascript
代码运行次数:0
运行
复制
// NOCA:LowCommentRatio(设计如此:逻辑较简单,不需要过多注释)

#include <iostream>

int main() {
    std::cout << "这是一个傻瓜式教程。";

    std::cout << "这是一个傻瓜式教程。";
    return 0;
}

以上demo.cpp文件,报出LowCommentRatio(代码注释率太低)的问题,该规则是针对整个文件的,会在第一行报出。可以在文件第一行添加忽略注释demo.cpp

使用 .code.yml 过滤文件问题

针对某文件或某路径进行过滤设置,使扫描对其无效。

注意1:以上两种方式设置后,工具系统需重新扫描后生效;其中.code.yml方式需要全量扫描后生效。

注意2:以上两种方式如同签字盖章,请勿轻易放过安全隐患类问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云代码分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 误报原因
  • 忽略方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档