zoukankan      html  css  js  c++  java
  • 代码扫描工具TScanCode

    引入开源工具TscanCode对源代码进行静态扫描,开发人员对工具扫描的问题进行有针对性的分析及处理。

    一、TScanCode安装

    代码仓库为:https://github.com/Tencent/TscanCode, 我们可以自己下载下来编译,
    也可以使用腾讯预编译好的可执行文件(代码仓库的 release 目录)。简单起见,我们直接使用预编译好的文件就行。

    第一种:
    $ git clone https://github.com/Tencent/TscanCode.git
    $ cd TscanCode/release/linux/
    $ unzip TscanCodeV2.14.24.linux.zip 
    $ cd TscanCodeV2.14.24.linux/TscanCodeV2.14.2395.linux
    $ chmod a+x tscancode 
    $ echo "PATH=$PATH:$(pwd)" >> ~/.bashrc
    $ source ~/.bashrc
    
    第二种,建议使用:
    cd trunk/
    make
    修改cfg/cfg.xml  #cfg.xml 配置不当,可能导致检测结果为空,建议value="0"的再开启一些
    

    二、扫描规则与配置

    2.1 检测问题列表

    代码安全静态扫描工具TscanCode主要能够发现的问题如下:
    1、自动变量检查: 返回自动变量(局部变量)指针;
    2、越界检查:数组越界返回自动变量(局部变量)指针;
    3、类检查:构造函数初始化;
    4、内存泄露检查;
    5、空指针检查;
    6、废弃函数检查;

    2.2 扫描规则配置

    代码安全静态扫描工具TscanCode支持多平台运行,包括Linux、Windows版本,在Linux下可通过cfg/cfg.xml对扫描的规则进行配置,
    其中通过设置value=0则禁用,value=1则启用。

    三、 静态扫描过程

    3.1 配置扫描规则

    根据需要定制扫描规则,编辑2.2 所述的规则配置文件cfg/cfg.xml,或直接使用默认的扫描规则。

    3.2 准备扫描对象

    将源代码放到指定路径下${SRC_CODE}(路径中不能包含root文件夹,TscanCode特殊性)。
    如,export SRC_CODE=~/rpmbuild/kylin-scanner/

    3.3 执行代码扫描

    进到tscancode安装目录,这里为./trunk/目录。
    执行./tscancode --xml --enable=all -q ${SRC_CODE} >scan_result.xml 2>&1;

    TscanCode会将结果按照固定的XML格式写入文件中。

    3.4 分析扫描结果

    选择Excel工具打开XML报告(为了处理更直观),在左侧插入一列处理情况。
    开发人员根据报告对代码上下文进行分析,判断是否为工具误报。
    对于确认为问题的代码,由开发人员处理后重新进行代码安全静态扫描,直到问题关闭。

    参考:

    作者:yusq77

    -------------------------------------------

    Wish you all the best and good health in 2021.

  • 相关阅读:
    docker for windows 中挂载文件到容器
    docker for windows 中 镜像 microsoft/donet 的文件结构
    window7下docker toolbox 启用数据卷报错: Error response from daemon: invalid mode:
    无法创建虚拟目录
    docker 内时区和宿主机差8个小时,怎么办?
    多线程之同时更改数据问题--启用lock
    Linux shell Bash的基本功能1
    Linux shell 脚本执行方式
    Linux vim编辑器使用技巧
    Linux vim编辑器命令
  • 原文地址:https://www.cnblogs.com/yusq77/p/13948328.html
Copyright © 2011-2022 走看看