没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
代码审计工具 Findbugs 自动检查 CheckList 及配置方法
代码审计工具 Findbugs 是一个应用比较广泛的开源代码审计工具,如果开发团队利用
好了这个工具,能够很大程度上提高软件产品的安全性。而且重要的是 Free。
首先,介绍一下安全审计配置文件的位置,网上都没有这方面的资料,我自己找了几
个小时才找到。这个配置文件不在安装文件夹,也不再 Eclipse 软件的文件夹,而是在具体
项 目 的 工 作 空 间 workspace 中 , 具 体 位 置 是 : workspace\.metadata\.plugins\
edu.umd.cs.ndbugs.plugin.eclipse\.prefs。(以点开始的文件夹,还这么多层目录,很隐
蔽!!!)
这个文件中,选中要审计的项目其配置值会是“ TURE”,配置为不审计的项会是
“FALSE”。我们可以通过在工作中逐渐确定哪些安全项一定要检查,哪些不需要检查,确定
之后,整个开发团队使用同一个配置文件,从而实现标准化、自动化地审查开发团队的代
码。
其次,介绍一下 Findbugs 的大类,为如下几种:
Malicious code
vulnerability
恶意代码
Dodgy
小问题
Bad practice
不好的习惯
Bogus random noise
无效代码
Correctness
代码的正确性
Internationalization
国际化问题
Performance
性能问题
Security
安全性问题
Multithreaded currectness
线程问题
Experrimental
实验性问题
第三,介绍一下 Findbugs 的常见检查项的意思:
关键字 规则名 错误信息及建议
BC BC_UNCONFIRMED_CAST
由于没有进行类型检查, 可能会发生异常
ClassCastException。推荐在类型变换前,用
instanceof 来对是否可以类型变换进行检查。
BC BC_IMPOSSIBLE_CAST
因为不相关的类型之间的类型变换是不可能成功的,所
以请检查相关的代码。
BC DMI_RANDOM_USED_ONLY_ONCE
在使用类 java.util.Random
成的随机数比较容易预测, 所以推荐用更安全的类
java.security.SecureRandom
Bx DM_BOXED_PRIMITIVE_TOSTRING
进行字段的同步的时候、得到的不是字段、而是向参照
的 object 的 lock。字段的値变化的时候、不同的线程中
持有的字段的値肯定是不一样的。这个时候、不能防止
同時更新。
Bx DM_BOXED_PRIMITIVE_TOSTRING
使用 static 方法 toString
Bx DM_NUMBER_CTOR
因为 Number 构造函数的效率不高,推荐使用
法 valueOf。
CN CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE
switch 文中、有相同的 code
也有可能使 oding 的 miss
是 codingmiss 的话、修改
複的话、为了避免重複,建议改一下
CN CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE
虽然定义了方法 clone,但是由于没有实现接口
Cloneable,推荐在类的宣言的地方,追加接口
Cloneable。
DB DB_DUPLICATE_BRANCHES
不能直列化的 object 被保存在
sessionobject 的 container
话、有可能不能正常运转。所以建议修正为可以直列化
的 object。
DB DB_DUPLICATE_SWITCH_CLAUSES
switch 中有相同的代码。可能是简单的代码重复,也可
能是编码错误。推荐对该代码进行检查,如果是编码错
误,修改代码,如果是代码重复,重写代码避免代码重
复。
DB DB_DUPLICATE_BRANCHES
分支语句中的代码是相同的。因为代码重复,推荐删除
分支语句的判断。
DE DE_MIGHT_IGNORE
有异常被捕获但是没有进行处理。
DLS DLS_DEAD_LOCAL_STORE
现在进行 方法 String.indexOf()
較、但是 等于或者大于 0(>=0)
所以建议重新检查前後的源码。
DLS DLS_DEAD_STORE_OF_CLASS_LITERAL
不是 volatile 的 static 字段、不进行同步,被遅延初期
化。Compiler 以及、processor
行、如果方法同时从複数的线程被调用的话,线程访问
这个字段的时候、可能会出现可以看到被初期化了一半
的 instance 的危险。通过 对于字段进行
是 对于初期化 bloc 进行同步、可以解决这个問題。
DLS DLS_DEAD_LOCAL_STORE
局部变量被赋值,但是之后赋的值没有被使用,所以推
荐不对该局部变量赋值。
剩余11页未读,继续阅读
资源评论
- netorgcom2014-09-30很有参考价值,谢谢!!
- bailiju2014-02-20比较详细的步骤,对于初学者比较有用,可以学习一下。
- 一路向南的田鼠2012-12-03比较详细的步骤
yueyunjun
- 粉丝: 1
- 资源: 44
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 238.html
- 基于C#.NET+PhantomJS+Sellenium的高级网络程序
- 基于Verilog HDL的五级流水线RISC-V CPU设计源码+报告文档(课程设计).zip
- 基于AMDavaScript模块加载器迄今为止对AMD理解最好的实现
- 基于Verilog HDL的五级流水线RISC-V CPU设计+报告文档+使用说明(高分项目).zip
- 基于 TypeScript 编写的 JavaScript 简洁 UI 库
- 基于正则匹配的 JavaScript 解密工具
- python实现基于SDN架构的网络流量监控和控制源码.zip
- 数据分析,数据可视化,numpy
- 基于 Vue3、Vite4、TypeScript/JavaScript、Tailwindcss、Vant4,开箱即用的移动端项目
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功