没有合适的资源?快使用搜索试试~ 我知道了~
FindBugs规则(中文版111).doc
需积分: 9 3 下载量 108 浏览量
2019-11-20
20:11:12
上传
评论
收藏 457KB DOC 举报
温馨提示
试读
62页
FindBugs的规则整理(中文版)
资源推荐
资源详情
资源评论
FindBugs1.3.9 规则整理
中把影响代码质量分为以下几个部分:
关于代码安全性防护
序号
备注
!" !#$"%&'
代码中创建 # 的密码时采用了写死的密码。
(
))$!*#$"%&'
创建数据库连接时没有为数据库设置密码,这会使数据库没有必要的保护。
+
&!!$,--
&&)./)!$"&")!)&!0)'
此代码使用不受信任的 !!$ 参数构造一个 !!$,。
1
&!!$&2322
&&)./)!$"&")!)&!!!$)")&'
在代码中直接把一个 !!$ 的参数写入一个 !!$ 头文件中,它为 !!$ 的响应暴
露了漏洞。
4
.5 67.5
.5 !" !!& 8$")!)9)/!)'
该方法以字符串的形式来调用 .5 的 6 方法,它似乎是动态生
成 .5 语句的方法。这会更容易受到 .5 注入攻击。
:
9;$<322
9&)./)!$"&")!)&!;$%&!)&'
在代码中在 ;$ 输出中直接写入一个 !!$ 参数,这会造成一个跨站点的脚本漏
洞。
)62
序号
备注
58$2227,-
;0585!588)&/)!%)"0&))&) )'
;0 的引入了一种潜在的不兼容问题,特别
是,=3225 的行为改变时。它现在使用内部弱引
用,而不是强引用。–2 配置改变,它就是丢失对 2 的引用,
这本是一个合理的变化,但不幸的是一些代码对旧的行为有依赖关系。
这意味着,当进行垃圾收集时对 2 配置将会丢失。例如:
235'7)6>
52?55@@'A
2222''ABB2272
C
2/$2-2'ABB7227
2C
D
该方法结束时 2 的引用就丢失了,如果你刚刚结束调用
5 方法后进行垃圾回收,2 的配置将会丢失(因为只有
保持记录器弱引用)。
23EF'7)6>
5'ABBC27272
'ABB2C2
55@@'-@@'ABB7
G27C26
D
(
#57-22
#5/ "!)#58"! '
这种方法可能无法清除(关闭,处置)一个流,数据库对象,或其他资
源需要一个明确的清理行动。
一般来说,如果一个方法打开一个流或其他资源,该方法应该使用 B
C22 块来确保在方法返回之前流或资源已经被清除了。这种错误模式
基本上和 $) !&)" 和
&$) "!"#")&)/&) 错误模式相同,但是是在不同在
静态分析技术。我们正为这个错误模式的效用收集反馈意见。
# 代码实现中的一些坏习惯
序号
Description
备注
"=C2
"&)"!))$!*;"&5)) !&*'
调用 putNextEntry()方法写入新的 jar 文件条目时立即调用
closeEntry()方法。这样会造成 JarFile 条目为空。
(
"HC2
"&)"!))$!*I$5)) !&*'
调用 putNextEntry()方法写入新的 zip 文件条目时立即调用
closeEntry()方法。这样会造成 ZipFile 条目为空。
+
#)J277277-
#)./"5)!/5%&0&"55#;)!'
equals(Object o)方法不能对参数 o 的类型做任何的假设。比较此对象与
指定的对象。当且仅当该参数不为 null,并且是表示与此对象相同的类型的
对象时,结果才为 true。
1
#&=2
&" /) 5* )'
随机创建对象只使用过一次就抛弃
4
#!7,--#!8 ))0'
检查位操作符运行是否合理
32K%!)5)!)'LM'
-%!)5)!)3N7-
)37%!)5)!)3N
GO?MG-GLMG
:
2222C2
7 '
按照惯例,实现此接口的类应该使用公共方法重写 =2(它是受保
护的),以获得有关重写此方法的详细信息。此接口不 包含 2方法。因
此,因为某个对象实现了此接口就克隆它是不可能的N应该实现此接口的类应
该使用公共方法重写 =2
P
27222'
/$)&"55'
一个非 C2 类型的类定义了 2'方法而没有调用 2'方法。
例如:# 扩展自 ",如果 # 中 2 方法调用了 2(),而 " 中
的 2 没有调用 2',就会造成结果类型不准确。要求 " 的
2 方法中调用 2'方法。
Q
2C2'G222
$5)) !5 )#/! !5 )"#5)'
类中定义了 2 方法但是它没有实现 22 接口
R
"2C3!'7
"#!&"!)5'
抽象类中定义了多个 !'方法,正确的是覆写 2 中的
! 方法,方法的参数为 = 类型,如下例:
!!'S比较此对象与指定对象的顺序。
M
3!'7C)5 #;)!'
类中定义了多个 !'方法,正确的是覆写 2 中的
! 方法,方法的参数为 = 类型
)776)8!&$'
方法可能抛出异常
(
)776)8!8 &)'
方法可能忽略异常
+
G3"22222
/ 8&)T)"55!5)"&55)! '
不要用 3"22 方法去 2 一个集合
1
$22722$322,
$&)"!)5"5")& )$&T5)8)'
类加载器只能建立在特殊的方法体内
4
73,6')9!'
在方法中调用 6'语句,考虑用 &)6 来代替
:
73,72H)6
&/ "5I)& )9!'
在方法中调用了 2H)6或者
&2H)6 方法,因为这样做是很危险的。
P
)-??O?
)$"& 8$"&")!)&!& 8%!).'
用??或者O?方法去比较 类型的参数
Q
)-=??O?
)$"& 8!& 8%!).'
用??或者!?去比较 类型的对象
剩余61页未读,继续阅读
资源评论
栗超
- 粉丝: 51
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功