代码审计报告3.docx
- 文档编号:29781035
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:35
- 大小:72.62KB
代码审计报告3.docx
《代码审计报告3.docx》由会员分享,可在线阅读,更多相关《代码审计报告3.docx(35页珍藏版)》请在冰豆网上搜索。
代码审计报告3
v1.0可编辑可修改
代码审查报告
xxxx公司
1
v1.0可编辑可修改
版本信息
文档标识:
当前版本:
草稿
当前状态:
发布日期:
发布
修改历史
日期版本作者修改内容评审号变更控制号
评审查员
审
对
象
项审查日期
目
名
称
重
分类要检查项备注
性
命名
重成员变量,方法参数等需要使用首字母小写,
命名规则是否与所采用的规范保持一致
要其余单词首字母大写的命名方式,
2
v1.0可编辑可修改
禁止使用下划线(_)数字等方式命名
不要出现局部变量,成员变量大写字母开头等问题
一各种命名尽可能短,表意准确,除2代替‘to’,
是否遵循了最小长度最多信息原则
般4代替‘for’外,不建议使用数字在命名中
重成员变量,方法参数,局部变量等为布尔型时,
has/can/is前缀的函数是否返回布尔型
要如果出现has/can/is开头,则将这些词去掉
重自己实现的类尽量不要和别人的类重名,
类名是否存在重名问题
要尽管不在同一个包下,特别是子类和父类重名的情况
注释
重方法JAVADOC注释中需要说明各参数、返回值
注释是否较清晰且必要
要及异常说明,参数说明需按照参数名称及用意对应标注
重
复杂的分支流程是否已经被注释
要
一
距离较远的}是否已经被注释
般
重函数是否已经有文档注释(功能、输入、返回及其他文件,类(含接口,枚举等),成员变量,
要可选)方法前需要有JAVADOC的注释
一
特殊用法是否被注释
般
声
明、
空
白、
缩
进
一每行是否只声明了一个变量(特别是那些可能出错的
般类型)
3
v1.0可编辑可修改
重
变量是否已经在定义的同时初始化
要
重
类属性是否都执行了初始化
要
一
代码段落是否被合适地以空行分隔
般
基本代码格式中的空格符不可缺少,
一
是否合理地使用了空格使程序更清晰这些空格出现在,:
+,-,*,/,=,==,>,<,>=,<=,!
=,
般
及各种括号附近
提
120个字符
代码行长度是否在要求之内
每行不得超过
示
重controller,service,dao中不要声明有状态的变此变量不能被修改。
如果要进行修改,
要量。
必须通过锁进行控制。
一
折行是否恰当
般
一定义集合时,建议定义其泛型类型,
集合是否被定义为泛型类型
般减少类型转换和警告错误
语句
/功
能分
布/
规模
一
包含复合语句的{}是否成对出现并符合规范
般
重if,else,elseif,while,for,case等
是否给单个的循环、条件语句也加了{}
要代码块必须用{}包围
一单个变量是否只做单个用途
4
v1.0可编辑可修改
般
重
单行是否只有单个功能(不要使用;进行多行合并)
要
重
单个函数是否执行了单个功能并与其命名相符
要
一
操作符++和——操作符的应用是否符合规范
般
规模
重
单个函数不超过规定行数
要
重
缩进层数是否不超过规定
要
可靠
性
(总
则/
变量
和语
句)
重
是否已经消除了所有警告开发工具的警告
要
重
常数变量是否声明为final
要
重
对象使用前是否进行了检查
要
重对象初始化为null的对象被调用前必须被重新赋值,
成员变量,局部变量是否在使用前被赋值
要如果赋值语句在try块中,调用操作必须在try块中
5
v1.0可编辑可修改
一
局部对象变量使用后是否被复位为NULL特别是数组集合Map
般
重对数组的访问是否是安全的(合法的index取值为
要[0,MAX_SIZE-1])。
重
是否确认没有同名变量局部重复定义问题严禁局部变量名称和类或对象成员变量同名
要
一
程序中是否只使用了简单的表达式
般
重
是否已经用()使操作符优先级明确化
要
重所有判断是否都使用了(常量==变量或者常常量放在比较符前可以有效降低比较符写成赋值语句
要量.equals(变量))的形式减少空指针异常
重是否每个if-elseif-else语句都有最后一个else
要以确保处理了全集
重是否每个switch-case语句都有最后一个default以
要确保处理了全集
一for循环是否都使用了包含下限不包含上限的形式般(k=0;k 重 XML标记书写是否完整,字符串的拼写是否正确 要 重对于流操作代码的异常捕获是否有finally操作以关 关闭前需要判断流对象是否为空 要闭流对象 提 退出代码段时是否对临时对象做了释放处理 示 重 对浮点数值的相等判断是否是恰当的严禁使用==直接判断浮点数值。 提供通用方法 要 6 v1.0可编辑可修改 重对象(包括包装类)比较必须使用equals, 是否对象比较都使用了equals 要而不是使用==或! =操作 equals方法比较的对象在对象类型确定的前提下, 重使用equals进行比较时是否确保比较的两个对象类 建议是同一类型的,例如Integer和""使用equals 要型一致 是不提倡的 Session,Request等对象的setAttribute, 一操作Map或Properties结构对象,用于传值时是否将 getAttribute方法的key建议使用常量, 般Key定义为常量 不得手工输入字符串 重 是否在类型转换前确保了类型的兼容除非明确保证对象类型 要 重包装类做简单预算前是否保证非空建议都使用包装包装类进行操作前,建议进行非空(null! =xx)判 要类。 防止发生空指针异常 只读属性(只提供get方法的成员变量) 重 set方法 对象属性在使用前是否确保被准确赋值 除非特意返回固定值,否则必须提供 要 或在其他方法调用时将其赋值 对参数的非空判断必须出现在方法调用之前, 重 方法调用前是否有非空判断否则说明前面可能导致空指针或者后者判断是没有必要 要 非空判断,默认由调用者提供 DateFormat实例的format方法调用不是线程安全, 重类似的情况不适合使用static定义 非线程安全的对象是否被正确保证线程安全 要,建议使用ThreadLocal方式实现, 参看UnifiedCodeGenerator 不同实体Entity、VO、BO之间表示同一含义的成员变量 一建议使用相同的名称,尽量不要出现, 相同用意的成员变量是否使用了相同的命名 般有的地方用username, 有的地方用userName这样的情况 可靠 性 7 v1.0可编辑可修改 (函 数) 重 入口对象是否都被进行了判断不为空 要 重 入口数据的合法范围是否都被进行了判断 要 重 是否对有异常抛出的方法都执行了try...catch保护 要 重 是否函数的所有分支都有返回值 要 重 int的返回值是否合理(负值为失败,非负值成功) 要 一对于反复进行了int返回值判断是否定义了函数来处 般理 一 关键代码是否做了捕获异常处理 般 一 字典表定义是否用枚举,或者有一个统一的定义 般 重是否对方法返回值对象做了null检查,该返回值定义 要时是否被初始化 重 是否对同步对象的遍历访问做了代码同步 要 Map遍历时执行增减元素操作将抛出 重是否确认在对Map对象使用迭代遍历过程中没有做增 ConcurrentModificationException, 要减元素操作 对集合对象遍历时建议都不要进行增减元素操作。 重线程处理函数循环内部是否有异常捕获处理,防止线 8 v1.0可编辑可修改 要程抛出异常而退出 重原子操作代码异常中断,使用的相关外部变量是否恢 要复先前状态 重 函数对错误的处理是恰当的 要 重异常捕获后如果无法处理需要继续抛出, 异常捕获后是否进行了日志记录或异常继续抛出 要如果可以处理,建议将异常日志进行记录 重 是否构造方法中不调用当前对象的构造方法严禁在构造方法中new一个当前对象 要 可维 护性 重实现代码中是否消除了直接常数(用于计数起点的简 要单常数例外) 重是否消除了导致结构模糊的连续赋值(如 要a=(b=d+c)) 重 是否正确使用了日志记录 要 “if(b)returntrue;elsereturnfalse;” 一是否有冗余判断语句(如: “returnb;”; 般if(b)returntrue;elsereturnfalse;)禁止使用类似“if/while(表达式==true) 或if/while(表达式==false)”的判断 重 是否把方法中的重复代码抽象成私有函数 要 代码 警告 一是否清除了多余导入的包或类 9 v1.0可编辑可修改 般 重严禁局部变量被定义或者初始化而未被使用, 是否清除了只定义未使用的局部变量 要这种情况需要删除该局部变量 一不允许直接使用除-2,-1,0,1,2,3,4,5,6,7,8,9,10外的 是否将魔鬼数字修改为常量使用 般数字,除此外的数字需要定义常量使用 提 常量定义是否为staticfinal格式常量定义格式为public/protected 示 10 v1.0可编辑可修改 排序尽量建立在有索引的列上。 重b.如结果集不需唯一,使用unionall 要代替union。 3选用索引注意事项 重1)对于复合索引,SQL语句必须使用主索引 要列。 重 2)索引中,尽量避免使用NULL。 要 重3)对于索引的比较,尽量避免使用NOT= 11 v1.0可编辑可修改 要(! =)。 重 4)查询列和排序列与索引列次序保持一致。 要 4其他经验性规则 1)任何对列的操作都将导致表扫描,它包括 重 数据库函数、计算表达式等等,查询时要尽可能将操 要 作移至等号右边。 12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 代码 审计报告
![提示](https://static.bdocx.com/images/bang_tan.gif)