腾讯云代码分析腾讯云代码分析
指南
API
  • 其他

    • 问题忽略方式
立即体验
  • 服务协议
  • 隐私协议
  • 简体中文
  • English
Github
指南
API
  • 其他

    • 问题忽略方式
立即体验
  • 服务协议
  • 隐私协议
  • 简体中文
  • English
Github
  • 其他

    • 问题忽略方式

问题忽略方式

当通过代码检查发现的问题,经过评估后认为需要忽略时,平台目前提供了如下的忽略方式:

忽略方式说明
注释忽略通过代码注释的形式忽略问题。
平台忽略在平台页面操作进行问题忽略。
路径过滤过滤路径来忽略问题。
规则移除移除规则来忽略问题。
问题基线配置问题基线时间来忽略问题。

注释忽略

提示

代码注释忽略能更好的适应云原生,工具通用,避免代码扩散到其他分支、仓库、文件系统等,导致需处理重复问题。

  • 代码注释忽略能够跟随源码迭代更新,其他问题忽略方式都需要依托平台。

忽略格式

示例:// NOCA:规则名称(忽略原因),规则名称(忽略原因),...

  • 注释位置:问题行行尾,或问题行上一行。

    • 如果是文件型规则,问题行会是文件首行,则对应注释加在首行即可。
  • 注释格式:按对应语言的注释格式,参见示例。

  • NOCA:必填,忽略标记,后面使用英文冒号与规则名分隔。

  • 规则名:必填,多个规则用英文逗号分隔。

    • 圈复杂度的规则名为:CCN。
  • 忽略原因:必填,放在英文括号中,跟在规则名后面,用来说明忽略该规则问题的原因。

提示

以 C++ 代码注释格式为例:

  • 忽略单个规则:// NOCA:DirtyWord(设计如此:该语境下不是脏字)。
  • 忽略多个规则:// NOCA:DirtyWord(设计如此:该语境下不是脏字),invalid-name(其他:老代码先不改)。
  • 忽略文件型规则:首行添加 // NOCA:LowCommentRatio(设计如此:逻辑较简单,不需要过多注释) 即可。

各语言代码注释忽略示例

以下所提到的文件后缀名不区分大小写。

demo.cpp

适用于文件: .c、.cpp、.h、.hpp、.m、.mm、.swift、.go、.cxx、.cc、.cs、.json、.proto、.pch、.mod、.java、.kt、.js、.jsbundle、.jsx、.ts、.tsx、.vue、.css、.scala、.dart。

// C++ Program Demo

#include <iostream>

int main() {
    // NOCA:DirtyWord(误报,该语境下不是脏字)
    std::cout << "这是一个傻瓜式教程。";

    std::cout << "这是一个傻瓜式教程。";  // NOCA:DirtyWord(误报,该语境下不是脏字)
    return 0;
}
demo.py

适用于文件:.py。

def main():
    '''
    傻瓜化式创建  # NOCA:dirty_check(误报),DirtyWord(误报,这里的傻瓜化不是傻瓜)
    '''
    # NOCA:DirtyWord(误报)
    print("这是一个傻瓜式教程。")
    print("这是一个傻瓜式教程。")  # NOCA:DirtyWord(误报)
demo.php

适用于文件:.lua。

<?php
    # NOCA:DirtyWord(误报,该语境下不是脏字)
    echo "这是一个傻瓜式教程。<br>";
 
    // NOCA:DirtyWord(误报,该语境下不是脏字)
    echo "这是一个傻瓜式教程。";
 
    echo "这是一个傻瓜式教程。"; // NOCA:DirtyWord(误报,该语境下不是脏字)
?>
demo.yml

适用于文件:'.yml', '.yaml', '.toml', '.conf', '.properties', '.sh'

version: '2.0'
stages:
- stage: demo测试
  tasks:
  # NOCA:DirtyWord(误报,该语境下不是脏字)
  - title: 傻瓜式教程
    message: "这是一个傻瓜式教程"  # NOCA:DirtyWord(误报,该语境下不是脏字)
demo.md

适用于文件:'.md'

# MarkDown demo

## 操作指引文档
[注释]: NOCA:DirtyWord(误报,该语境下不是脏字)
1. 这是一个傻瓜式教程。

<!-- NOCA:DirtyWord(误报,该语境下不是脏字) -->
2. 这是一个傻瓜式教程。
demo.ini

适用于文件:'.ini'

; 参数配置文件

[config]
; NOCA:DirtyWord(误报,该语境下不是脏字)
message: 这是一个傻瓜式教程
demo.xml

适用于文件:.xml、.html、htm、.vcproj、.vcxproj。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="test.css" ?>
<root>
    <book-name>My Magic Book</book-name>
    <book-author>author: Harry Potter</book-author>
    <!-- NOCA:DirtyWord(误报,该语境下不是脏字) -->
    <short-desc>这是一个傻瓜式教程</short-desc>
</root>
demo.lua

适用于文件:.lua。

-- NOCA:DirtyWord(误报,该语境下不是脏字)
print("这是一个傻瓜式教程!")

print("这是一个傻瓜式教程!")  -- NOCA:DirtyWord(误报,该语境下不是脏字)

平台忽略

直接在平台上操作忽略问题即可,会将问题解决方式标记如下:

解决方式描述
测试/无用代码业务实际未使用漏洞所在的代码。
重复问题问题已在其它分支中解决。
工具误报该代码无问题,工具分析不准确(可协助平台发现误报率较高的规则并进行优化)。
无需修复工具分析无误,但该代码设计如此,或因历史原因修复成本高,暂时无需处理。

平台忽略

全局问题忽略

在对问题进行忽略时,希望代码库内其他分析项目发现相同问题时,同步忽略掉,则可以配置全局问题忽略。

全局忽略

注意

如进行了全局忽略操作,当代码库内其他分析项目全量分析后,会使用当前忽略方式忽略相同问题,请谨慎操作!

  • 生效策略:其他分析项目需要全量分析后才会忽略相同问题,而非操作完毕就忽略了。

  • 排除范围:如果分析项目关闭了问题忽略同步开关,则不会同步忽略。

路径过滤

提示

通常适用于对应问题所在文件属于测试/无用代码文件,需要将目录/文件进行路径过滤,从而忽略问题。

请查看路径过滤配置文档

规则移除

提示

通常适用于评估规则后,认为该规则有效性不高,或当前不关注该规则问题的场景。可以通过移除/屏蔽对应问题规则,从而忽略问题。

  • 会将问题解决方式标记为规则移除。

请查看规则配置文档

问题基线

提示

通常适用于分析项目问题量太大,但是又不想处理历史负债,可以通过配置新问题基线时间,从而忽略问题。

  • 会将问题解决方式标记为历史问题。

请查看基础配置文档

新问题基线

最近更新时间: 2025/4/11 18:36
贡献者: nickctang