代码审计报告.docx

上传人:lao****ou 文档编号:368335 上传时间:2023-10-02 格式:DOCX 页数:27 大小:107.13KB
下载 相关 举报
代码审计报告.docx_第1页
第1页 / 共27页
代码审计报告.docx_第2页
第2页 / 共27页
代码审计报告.docx_第3页
第3页 / 共27页
代码审计报告.docx_第4页
第4页 / 共27页
代码审计报告.docx_第5页
第5页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《代码审计报告.docx》由会员分享,可在线阅读,更多相关《代码审计报告.docx(27页珍藏版)》请在第一文库网上搜索。

1、代码审计报告代码审查报告XXXX公司版本信息文档标识:当前版本:当前状态:草稿发布日期:发布修改历史日期版本作者修改内容评审号变更控制评审杳J0项名称审查日期分类重要性检查项备注OD名重要命名规则是否与所采用的规范保持一致?成员变量,方法参数等需要使用首字母小写,其余单词首字母大写的命名方式,禁止使用下划线(一)数字等方式命名不要出现局部变量,成员变量大写字母开头等问题一般是否遵循了最小长度最多信息原则?各种命名尽可能短,表意准确,除2代替*。,4代替qOr外,不建议使用数字在命名中重要has/can/is前缀的函数是否返回布尔型?成员变量,方法参数,局部变量等为布尔型时,如果出现has/ca

2、n/is开头,贝捋这些词去掉重要类名是否存在重名问题?自己实现的类尽量不要和别人的类重名,尽管不在同一个包下,特别是子类和父类重名的情况注释重要注释是否较清晰且必要?方法JAVADoC注释中需要说明各参数、返回值及异常说明,参数说明需按照参数名称及用意对应标注重要复杂的分支流程是否已经被注释?一般距离较远的是否已经被注释?函数是否已经有文档注释文件,类(含接口,枚举等),成员重要(功能、输入、返回及其变量,他可选)方法前需要有javadoc的注释一般特殊用法是否被注释?声明、空白、缩进一般每行是否只声明了一个变量(特别是那些可能出错的类型)重要变量是否已经在定义的同时初始化?重要类属性是否都执

3、行了初始化?一般代码段落是否被合适地以空行分隔?一般是否合理地使用了空格使程序更清晰?基本代码格式中的空格符不可缺少,这些空格出现在,:,+,-及各种括号附近提示代码行长度是否在要求之内?每行不得超过120个字符重要contro11er,service,dao中不要声明有状态的变量。此变量不能被修改。如果要进行修改,必须通过锁进行控制。一般折行是否恰当?句/布/一般集合是否被定义为泛型类型?定义集合时,建议定义其泛型类型,减少类型转换和警告错误一般包含复合语句的是否成对出现并符合规范?if,e1se,e1se?if,whi1ejor,case是否给重要单个的循环、条件语句也加了代码块必须用(包

4、围一般单个变量是否只做单个用单行是否只有单个功能重要(不要使用;进行多行合并)单个函数是否执行了单个重要功能并与其命名相符?操作符+和操作符_般的应用是否符合规范规模单个函数不超过规定行缩进层数是否不超过规重要定?可靠性则/重要是否已经消除了所有警开发工具的警告重要重要重要告?常数变量是否声明为fina1?对象使用前是否进行了检成员变量,局部变量是否在使用前被赋值?对象初始化为nu11的对象被调用前必须被重新赋值,如果赋值语句在try块中,调用操作必须在try块中一般局部对象变量使用后是否被复位为NU11?特别是数组集合Map重要对数组的访问是否是安全的(合法的index取值为O,MAX_SI

5、ZE-1)O重要是否确认没有同名变量局严禁局部变量名称和类或对象成员变部重复定义问题?量同名一般程序中是否只使用了简单的表达式?重要是否已经用()使操作符优先级明确化?所有判断是否都使用了常量放在比较符前可以有效降低比较重要(常量=变量或者常符写成赋值语句,量.equa1s(变量)的形减少空指针异常是否每个if-e1seif-e1se语句都有最后一个e1se重要以确保处理了全集是否每个SWitCh-CaSe语重要句都有最后一个defau1t以确保处理了全集?for循环是否都使用了包含下限不包含上限的形式一般(k=0;kMAX)XM1标记书写是否完整,重要字符串的拼写是否正确?对于流操作代码的异

6、常捕关闭前需要判断流对象是否为空重要获是否有fina11y操作以关闭流对象?提不退出代码段时是否对临时对象做了释放处理?重要对浮点数值的相等判断是否是恰当的?严禁使用=直接判断浮点数值。提供通用方法重要是否对象比较都使用了equa1s?对象(包括包装类)比较必须使用equa1s,而不是使用=或!=操作要使用equa1s进行比较时重是否确保比较的两个对象类型一致?equa1s方法比较的对象在对象类型确定的前提下,建议是同一类型的,例如Integer和,”使用equa1s是不提倡的般操作MaP或PrOPertieS结构对象,用于传值时是否将Key定义为常量?Session,ReqUeSt等又寸象的

7、SetAttribute,getAttribute方法的key建议使用常量,不得手工输入字符串重要是否在类型转换前确保了类型的兼容?除非明确保证对象类型重要包装类做简单预算前是否保证非空?建议都使用包装类。包装类进行操作前,建议进行非空(nu11!=xx)判断,防止发生空指针异常重要对象属性在使用前是否确保被准确赋值?只读属性(只提供get方法的成员变量)除非特意返回固定值,否则必须提供set方法或在其他方法调用时将其赋值重要重要方法调用前是否有非空判断?对参数的非空判断必须出现在方法调用之前,否则说明前面可能导致空指针或者后者判断是没有必要的,非空判断,默认由调用者提供非线程安全的对象是否被

8、DateFormat实例的fonat方法调用正确保证线程安全?不是线程安全,类似的情况不适合使用static定义,建议使用Thread1oCa1方式实现,SUnifiedCodeGenerator不同实体Emity、VO、BO之间表z同一含义的成员变量,_般相同用意的成员变量是否使用了相同的命名?建议使用相同的名称,尽量不要出现,有的地方用username,有的地方用UserName这样的情况可靠性(函数)重要入口对象是否都被进行了判断不为空?入口数据的合法范围是否重要都被迸行了判断?是否对有异常抛出的方法重要都执行了try.Cateh保护?是否函数的所有分支都有重要返回值?int的返回值是否

9、合理重要(负值为失败,非负值成功)对于反复进行了int返回一般值判断是否定义了函数来处理?关键代码是否做了捕获异一般常处理?字典表定义是否用枚举,一般或者有一个统一的定义?是否对方法返回值对象做重要了nu11检查,该返回值定义时是否被初始化?是否对同步对象的遍历访重要问做了代码同步?M叩遍历时执行增减元素操作将抛出是否确认在对M叩对象使ConcurrentModificationException重要用迭代遍历过程中没有做,,对集合对象遍历时建议都不要进行增减元素操作。线程处理函数循环内部是重要否有异常捕获处理,防止线程抛出异常而退出?原子操作代码异常中断,重要使用的相关外部变量是否恢复先前状

10、态?重要函数对错误的处理是恰当可维护性异常捕获后是否进行了日重要志记录或异常继续抛出?异常捕获后如果无法处理需要继续抛出,如果可以处理,建议招异常日志进行记录是否构造方法中不调用当重要前对象的构造方法严禁在构造方法中new一个当前对象的?实现代码中是否消除了直重要接常数(用于计数起点的简单常数例外)是否消除了导致结构模糊重要的连续赋值(如a=(b=d+c)重要是否把方法中的重复代码抽象成私有函数?代码警告一般是否清除了多余导入的包或类?是否正确使用了日志记重要录?一般是否有冗余判断语句(如:if(b)returntrue;e1sereturnfa1se;)4if(b)retumtrueje1s

11、eretumfa1se;,=“returnb;禁止使用类似“i。Whi1e(表达式=true)或if/whi1e俵达式=fa1se)”的判断重要是否清除了只定义未使用的局部变量?严禁局部变量被定义或者初始化而未被使用,这种情况需要删除该局部变量一般是否将魔鬼数字修改为常量使用?不允许直接使用除2厂1,0,1,2,3,4,5,6,7,8,9,10外的数字,除此外的数字需要定义常量使用提示常量定义是否为StatiCfinaI格式常量定义格式为pub1icprotectedpriVatestaticfina1Type7TYPE,SIatiC和fina1J11腑要保持一致建议实现SeriaIiZab1

12、e的类需要增加可读提示实现序列化的对象是否定义了Seria1VersionUID?4privatestaticfina11ongseria1VersionUID=11f,性般是否用ife1se结构替换_了三元运算符表达式复杂情况下不要使用(Hagexp1:exp2)语句,该语句需要修改为if?e1se结构一般代码注释率是否结余30%60%之间?代码注释率应落在30%60%之间性能重要日志记录的1og,1ogger对象是否定义为常量?用于记录日志的1og,1ogger对象在类中定义必须是Static?fina1的,建议定义为private的,因为这类对象初始化比较耗时,不利系统运行打印信息是否都用日志管理?代码中建议不要使用打印信息,只有在系统启动或系统即揩退出时使用,其余部分全部用日志记录单个类行数是否不大于单个类建议行数小于500行,最多不500行?超过IOoO行方法参数个数是否在7个方法参数个数建议不大于5个,最多以内?不超过7个单个方法函数是否不大于单个方法建议函数不大于30行,做30行?多不超过60行单方法中单方法中try/for/whi1e/switch/if最深try/fbr/whi1e/switch/if最深度不允许大于5深深度是否不大于重要方法调用最深深度是否不大于15?方法内部+内部调用累计深度不允

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服