Coverity 代码静态安全检测

最近公司在推行代码Security检查,使用了Coverity代码静态检测工具。功能很强大,超乎我的期望。主要功能如下:
  1. 列出不会被执行到的代码
  2. 列出没被初始化的类成员变量
  3. 列出没有被捕获的异常
  4. 列出没有给出返回值的return语句
  5. 某个函数虽然有返回值,但调用该函数的地方没有用到它的返回值,这也会被列出来
  6. 列出没有被回收的new出来的对象
  7. 列出没有被关闭的句柄
  8. 精确定位到代码行,并提供逐层展开函数的功能
  9. 列出可能的数值类型溢出。例如,无符号int数做 ++ 操作,可能导致int溢出,都会被检测到。
  10. 什么地方该用&位运算,而不应该用|位运算,都能定位出来并作出建议
  11. ostream在一个函数中被修改了格式,但退出该函数之后没有将ostream恢复成先前的格式,也会被检测到
  12. ……
貌似程序中的所有可能分支,所有new出来的对象何时被销毁,所有可能的异常是否被代码捕获,它都能扫描到。真不简单啊。
我用到的Coverity是部署在企业内部的,通过https页面的方式向程序员报告扫描的安全隐患。
具体的安全隐患页面很专业。但有个缺点,点击一个security issue list中的一个item进入子页面,而后再点浏览器的返回按钮后,不能返回先前的页面,而是返回所有security issue list的第一个list页面,在这点上,用户体验很糟糕,因为本来出来的列表就很长了,看的很晕了,返回页面又不是先前的页面,导致很多时间都花费在重新找寻先前的list页面上了。

解决办法:
  1. 点击扫描列表上的"File"列标签,将扫描出来的列表按照文件排序,然后点击右上角的某个按钮,导出成.csv格式文件。
  2. 用Excel打开.csv文件,添加一列,记录状态,比如:Done, In progress, Cannot decide 等等。
  3. 按照.csv文件条目的顺序自上而下挨个处理。每做完一个条目,就更新对应的.csv文件中对应行的新加列。
  4. 注意,每当要处理下一个条目时,从.csv文件中copy出该条目的ID号,粘贴到Coverity页面的右上角的搜索栏中,搜索,并进入具体页面。这样做,可以免除上面提到的“因条目过多导致前进后退时迷失方向”的问题。

按照这样的方法,处理完所有的条目,会得到一个完整的条目状态列表。如果有未解决的条目的话,接下来就只关注这些条目。不会出现条目遗漏,也不会因条目过多而迷失方向。即安全又节省时间。

Coverity多次检测同样的代码(两次之间,被检测的代码有改动),不会覆盖先前的报告,即第一次检测得到的report item number还是有效的,不会被新的report item覆盖,搜索它仍然可以查看先前检测出来的问题。

其实Coverity检测也是有缺陷的,毕竟它只是个辅助工具,不能完全达到人的水平,有时报的问题其实不是问题。例如,它可能报告有个指针pNext在没有在被赋值或被赋值为NULL的情况下做pNext++操作存在风险,其实这个pNext指针在pNext=NULL下面的一个while循环中被赋值了,于是,这个报告可以被忽略。像这样的误报,目前还没找到方法有效地过滤掉。

附:


===================================


转自:http://www.broadskytech.com/tabid/90/ArticleID/117/Default.aspx


 

产品名称:Coverity源代码缺陷分析工具
产品型号:Coverity
  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值