代码审计报告完整版

上传人:hs****ma 文档编号:511458943 上传时间:2024-01-03 格式:DOCX 页数:27 大小:150.79KB
返回 下载 相关 举报
代码审计报告完整版_第1页
第1页 / 共27页
代码审计报告完整版_第2页
第2页 / 共27页
代码审计报告完整版_第3页
第3页 / 共27页
代码审计报告完整版_第4页
第4页 / 共27页
代码审计报告完整版_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《代码审计报告完整版》由会员分享,可在线阅读,更多相关《代码审计报告完整版(27页珍藏版)》请在金锄头文库上搜索。

1、HUA system office room HUA16H-TTMS2A-HUAS8Q8-HUAH1688代码审查报告xxxx 公司版本信息文档标识:当前版本:当前状态:草稿发布日期:发布修改历史变更控制评审号号rtr*7版日期作者修改内容本评审查员审对象项 目 名 称审查日期分类重要性检杳项备注命 名重要命名规则是否与所采用的 规范保持致?成员变量,方法参数等需要使用首字母小写,其余单词首字母大写的命名方式,禁止使用下划线(_)数字等方式命名 不要出现局部变量,成员变量大写字 母开头等问题一般是否遵循了最小长度最多信息原则?各种命名尽可能短,表意准确,除2代替t o,4代替for 外,不建议

2、使用数字 在命名中重要has/can/is前缀的函数是 否返回布尔型?成员变量,方法参数,局部变量等为 布尔型时,如果出现has/can/is开头,则将这些词去掉重要类名是否存在重名问题?自己实现的类尽量不要和别人的类重 名,尽管不在冋一个包下,特别是子类和 父类重名的情况注释重要注释是否较清晰且必要?方法JAVADOC注释中需要说明各参 数、返回值及异常说明,参数说明需按照参数名称及用意对应标注重要复杂的分支流程是否已经被注释?一般距离较远的是否已经被注释?重要函数是否已经有文档注释(功能、输入、返回及其 他可选)文件,类(含接口,枚举等),成员变量,方法前需要有JAVADOC的注释一般特殊

3、用法是否被注释?声 明空白缩进一般每行是否只声明了一个变 量(特别是那些可能出错 的类型)重要变量是否已经在定义的同时初始化?重要类属性是否都执行了初始化?一般代码段落是否被合适地以空行分隔?基本代码格式中的空格符不可缺少,一般是否合理地使用了空格使程序更清晰?这些空格出现在,:,+,-* / 二二二 =重要是否已经消除了所有警 告?开发工具的警告重要常数变量是否声明为final?重要对象使用前是否进行了检 查?重要成员变量,局部变量是否在使用前被赋值?对象初始化为null的对象被调用前 必须被重新赋值,如果赋值语句在try块中,调用操作 必须在try块中一般局部对象变量使用后是否 被复位为N

4、ULL?特别是数组集合Map重要对数组的访问是否是安全 的(合法的index取值为 O,MAX_SIZE1)。重要是否确认没有同名变量局部重复定义问题?严禁局部变量名称和类或对象成员变 量同名一般程序中是否只使用了简单的表达式?重要是否已经用()使操作符 优先级明确化?重要所有判断是否都使用了(常量一变量或者常量.equals(变量)的形 式常量放在比较符前可以有效降低比较符写成赋值语句,减少空指针异常重要是否每个 if-elseif-else 语句都有最后一个else 以确保处理了全集重要是否每个switch-case语 句都有最后一个default 以确保处理了全集?一般for循环是否都使

5、用了包 含下限不包含上限的形式(k=0;kMAX)重要XML标记书写是否完整, 字符串的拼写是否正确?重要对于流操作代码的异常捕 获是否有finally 操作以 关闭流对象?关闭前需要判断流对象是否为空提示退出代码段时是否对临时对象做了释放处理?重要对浮点数值的相等判断是否是恰当的?严禁使用=直接判断浮点数值。提供 通用方法重要是否对象比较都使用了equals?对象(包括包装类)比较必须使用equals,而不是使用=或匸操作重要使用equals进行比较时是否确保比较的两个对象类型一致?equals方法比较的对象在对象类型 确定的前提下,建议是冋一类型的,例如Integer和使用 equals是

6、不提倡的一般操作 Map 或 Proper ties结构对象,用于传值时是否将Key定义为常量?Session, Request 等对象的 setAttribute,getAttribute方法的key建议使用 常量,不得手工输入字符串重要是否在类型转换前确保了类型的兼容?除非明确保证对象类型重要包装类做简单预算前是否 保证非空?建议都使用包 装类。包装类进行操作前,建议进行非空(null!=xx)判断,防止发生空指针异常重要对象属性在使用前是否确保被准确赋值?只读属性(只提供get方法的成员变 量)除非特意返回固定值,否则必须提供 set方法或在其他方法调用时将其赋值重要方法调用前是否有非空

7、判断?对参数的非空判断必须出现在方法调 用之前,否则说明前面可能导致空指针或者后者判断是没有必要的,非空判断,默认由调用者提供重要非线程安全的对象是否被DateFormat实例的format方法调用正确保证线程安全?不是线程安全,类似的情况不适合使用static定义,建议使用ThreadLocal方式实现,参看 UnifiedCodeGenerator一般相同用意的成员变量是否使用了相同的命名?不同实体Entity、VO、B0之间表示 同一含义的成员变量,建议使用相同的名称,尽量不要出 现,有的地方用username,有的地方用userName这样的情况可靠性函数1重要入口对象是否都被进行了判

8、断不为空?重要入口数据的合法范围是否都被进行了判断?重要是否对有异常抛出的方法 都执行了 try.catch保 护?重要是否函数的所有分支都有 返回值?重要int的返回值是否合理(负值为失败,非负值成功)一般对于反复进行了 int返回 值判断是否定义了函数来 处理?一般关键代码是否做了捕获异 常处理?一般字典表定义是否用枚举,或者有一个统一的定义?重要是否对方法返回值对象做 了 null检查,该返回值 定义时是否被初始化?重要是否对同步对象的遍历访问做了代码同步?重要是否确认在对Map对象使 用迭代遍历过程中没有做 增减元素操作?Map遍历时执行增减元素操作将抛出ConcurrentModif

9、icationException,对集合对象遍历时建议都不要进行增 减元素操作。重要线程处理函数循环内部是 否有异常捕获处理,防止 线程抛出异常而退出?重要原子操作代码异常中断, 使用的相关外部变量是否 恢复先前状态?重要函数对错误的处理是恰当的?重要异常捕获后是否进行了日志记录或异常继续抛出?异常捕获后如果无法处理需要继续抛 出,如果可以处理,建议将异常日志进行 记录重要是否构造方法中不调用当前对象的构造方法严禁在构造方法中new 个当前对象可 维 护 性重要实现代码中是否消除了直 接常数(用于计数起点的 简单常数例外)重要是否消除了导致结构模糊的连续赋值(如a=(b=d+c)重要是否正确使

10、用了日志记 录?一般是否有冗余判断语句(如:if(b)returntrue;elsereturnfalse;)“if(b)returntrue;elsereturnfalse;二二“returnb;;禁止使用类似“ if/wh ile(表达式二二true)或if/while(表达式二二false)的判断重要是否把方法中的重复代码抽象成私有函数?代 码 警 告一般是否清除了多余导入的包或类?重要是否清除了只定义未使用的局部变量?严禁局部变量被定义或者初始化而未被使用,这种情况需要删除该局部变量一般是否将魔鬼数字修改为常 量使用?不允许直接使用除-2,-1,0,1,2,3,4,5,6,7,8, 9

11、,10 外的数字,除此外的数字需要定义常量使 用提示常量定义是否为 staticfinal 格式常里定义格式为public/protected/privatestaticf inalType?TYPE, static 和 final 顺序要 保持致提示实现序列化的对象是否定 义了 serialVersionUID?建议实现Serializable的类需要增 加“privatestaticfinallongserialVe rsionUID=1L;可读性一般是否用ifelse结构替换了三元运算符表达式复杂情况下不要使用(flagexpl:exp2)语句,该语句需要修改为if?else结构一般代码注释率是否结余30%60% 之间?代码注释率应落在30%60%之间性能重要日志记录的Log,Logger 对象是否定义为常量?用于记录日志的Log,Logger对象在 类中定义必须是static?final的,建议 定义为priv

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号