Sonar安全扫描代码规则

Sonar安全扫描代码规则

blocker级别

序号 分类 规则英语描述 翻译解读
1 Bug Loops should not be infinite 循环必须有一个终止条件
2 Bug Override both equals and hashcode equals和hashcode必须同时覆盖或则都不覆盖
3 Bug Resources should be closed 使用资源必须关闭
4 Bug Double-checked locking should not be used dublecheck可能出现线程安全问题
5 Bug “wait” should not be called when multiple locks are held 持有多个锁时,不应该调用wait方法,因为wait只会释放一个锁
6 Bug “@Controller” classes that use “@SessionAttributes” must call “setComplete” on their “SessionStatus” objects 使用SessionAttributes时,需要调用setComplete来销毁attributes信息
7 Bug “@SpringBootApplication” and “@ComponentScan” should not be used in the default package 这2个注解最好不要分开放在不同包不同类中
8 Bug Printf-style format strings should not lead to unexpected behavior at runtime 格式化打印时,切勿写错格式与入参
9 Bug “wait(…)” should be used instead of “Thread.sleep(…)” when a lock is held 在锁机制下,应该使用wait,而不是Thread.sleep;因为sleep不释放资源
10 Bug “PreparedStatement” and “ResultSet” methods should be called with valid indices statement和resultset下标索引都是1开头
11 Bug Files opened in append mode should not be used with ObjectOutputStream 追加模式写文档切勿使用ObjectOutputStream,会导致StreamCorruptedException
12 Bug Methods “wait(…)”, “notify()” and “notifyAll()” should not be called on Thread instances wait、notify、notifyAll方法不应该被Thread调用,这样会破坏JVM本身改变线程的状态
13 Bug Methods should not call same-class methods with incompatible “@Transactional” values 在同一个类中一个没有Transactional注解调用另外一个有Transactional注解的方法,这个Transactional会不生效
14 Vulnerability Struts validation forms should have unique names Struts的表单验证,不要使用相同名称
15 Vulnerability Default EJB interceptors should be declared in “ejb-jar.xml” ejb的拦截器一定要申明到ejb-jar.xml的配置文件中,不能更改配置文件名,否则拦截器会变成非默认
16 Vulnerability “”@RequestMapping"" methods should be ““public”” @RequestMapping不要使用在private方法中,因为controller的方法通过反射机制调用,private不起到私有的作用。另外加上@sercurity也不起作用,因为AOP代码对非静态方法不起作用
17 Vulnerability “HostnameVerifier.verify” should not always return true ssl链接必须验证hostname
18 Vulnerability XML parsers should not be vulnerable to XXE attacks XML使用规范,防止被XXE或者SSRF漏洞
19 Vulnerability LDAP deserialization should be disabled LDAP协议不应该启用发序列话,有导致远程攻击的风险
20 Vulnerability “javax.crypto.NullCipher” should not be used for anything other than testing Cipher加密应该使用比较强大的算法
21 Vulnerability Cipher algorithms should be robust 加密算法需要健壮,加密说法要指定安全模式和padding规则
22 Vulnerability Encryption algorithms should be used with secure mode and padding scheme 加密说法要指定安全模式和padding规则
23 Vulnerability Neither DES (Data Encryption Standard) nor DESede (3DES) should be used 不应该使用不安全的加密算法
24 Vulnerability Security constraints should be defined web服务器中web.xml必须设置,增强安全
25 Vulnerability Databases should be password-protected 不应该使用没有密码的数据库
26 Vulnerability Octal values should not be used 不建议使用八进制
27 code smell [p3c]Braces are used with if, else, for, do and while statements, even if the body contains only a single statement. if、while等建议使用大括号,哪怕主体只有一句代码
28 code smell Methods and field names should not be the same or differ only by capitalization 方法名和字段名不能相同或仅大小写不同,容易造成困惑
29 code smell [p3c]Manually create thread pool is better. 手动创建线程池,而非使用Excutor创建,可能考虑排队队列是无限长导致资源耗尽
30 code smell Methods returns should not be invariant 返回结果不应该只有一种结果
31 code smell [p3c]Use System.currentTimeMillis() to get the current millisecond. Do not use new Date().getTime(). 使用System.currentTimeMillis()代替new Date().getTime(),new Date()其实也是调用currentTimeMillis,所以可以少创建一个对象
32 code smell [p3c]The wrapper classes should be compared by equals method rather than by symbol of ‘==’ directly. 包装类应该使用equal方法
33 code smell Switch cases should end with an unconditional “break” statement 每个case应该以一个无条件的break结束
34 code smell “clone” should not be overridden 不建议重写clone方法,会造成浅拷贝以及跳过构造函数限制问题
35 code smell “main” should not “throw” anything main不应该抛异常,因为没有再外层可以catch这个exception
36 code smell [p3c]When using regex, precompile needs to be done in order to increase the matching performance. 使用正则表达式,最好使用预编译号的pattern以提高性能
37 code smell Short-circuit logic should be used in boolean contexts boolean类型使用非与或操作以为的操作,可能导致错误
38 code smell Future keywords should not be used as names 部分高版本已经被java定为关键字,最好也不要使用
39 code smell “ThreadGroup” should not be used ThreadGroup不要再使用了,有些方法不推荐,有些方法不安全。使用ThreadFactory和ThreadPoolExecutor代替
40 code smell EJB interceptor exclusions should be declared as annotations 不推荐使用EJB的xml配置拦截器,推荐使用注解方式,这样更能显示看到
41 code smell JUnit test cases should call super methods JUnit测试用例,在初始化和结束方法中,如果是继承类最好调用super方法
42 code smell TestCases should contain tests TestCase中最好包含测试用例的方法,以避免命名TestCase但不是做测试用例而忽略某个类的测试
43 code smell Silly bit operations should not be performed 某些确定的位移操作是可确定的,比如&-1、^0、
44 code smell ““switch”” statements should not contain non-case labels switch语句的case分支不能省略case关键字;case分支的逻辑处理代码要封装为一个方法,不要在case分支里写复杂的逻辑处理
45 code smell Assertions should be complete 断言方法要写全
46 code smell JUnit framework methods should be declared properly 测试用例的方法命名必须按照JUnit规范
47 code smell Child class fields should not shadow parent class fields 子类不推荐修改父类的属性的更封闭的修饰词,容易造成混乱
48 code smell Threads should not be started in constructors 不应该在构造方法调用线程启动方法,如果该类被继承,那么线程可以在子类初始化完成之前启动,可能造成混乱
49 code smell Tests should include assertions 测试用例中应该使用断言来测试,而非抛异常
50 code smell Exit methods should not be called 不应该在代码中调用System.exit方法,避免被恶意攻击关闭整个JVM
51 code smell [p3c]Do not remove or add elements to a collection in a foreach loop. 不要在for循环中添加或删除集合的元素
52 code smell [p3c]Avoid using Apache Beanutils to copy attributes. 不建议使用apache的beanutils拷贝对象,因为性能上比较低
53 code smell [p3c]Use ScheduledExecutorService instead. 推荐使用ScheduledExecutorService来做定时任务,相对于Timer来说对时间上更严格
54 security hotspot Hard-coded credentials are security-sensitive 硬编码秘钥文件有风险,最好把秘钥文件存储到数据库或者其他专门的服务中和业务代码分开。放在代码中很容易反编译看到秘钥

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/2080.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python程序员看见一个好看的手机壁纸网站,开撸!

人生苦短,我用python 最近好像没什么大事, .那就采集一下小——姐——姐————看下吧~ python 安装包资料:点击此处跳转文末名片获取 最近有同学的爬虫代码出了bug,给问我怎么改 于是就发现了这个好看的手机壁纸网站。 这个图片应该是违规…

【Unity工具,简单学习】PUN 2,多人在线游戏开发,初步使用

【Unity工具,简单学习】PUN 2,多人在线网络工具前言简单介绍安装简单使用一些 nomenclature 部分连接到 Server设置简单的大厅UI游戏场景搭建关卡加载事后前言 链接 简单介绍 PUN 可以让你简单地开发多人游戏,在全球范围推出 让开发者不用…

【Java学习笔记】38.Java 发送邮件

Java 发送邮件 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。 您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。 您…

MySQL注入秘籍【上篇】

MySQL注入秘籍【上篇】1.数据库敏感信息常用语句2.联合(UNION)查询注入3.报错注入原理常见报错注入函数1.数据库敏感信息常用语句 获取数据库版本信息 select version(); select innodb_version;获取当前用户 select user();获取当前数据库 select database();数…

高数重点总结

高数 公式不要去死记 配合训练题在训练中记忆 完成一下这些题目 高中函数图像回忆 与其记忆各种公式不如去思考他们的本质 这和调用c动态库可不一样 考试的时候你相当于在使用汇编答题 1 定义域(x) 性质 1/x(x!0)√x(x>0 || x0)log a x (x>…

血氧仪是如何得出血氧饱和度值的?

目录 一、血氧饱和度概念 二、血氧饱和度监测意义 三、血氧饱和度的监测方式 四、容积脉搏波计算血氧饱和度原理 五、容积脉搏波波形的测量电路方案 1)光源和光电探测器的集成测量模块:SFH7050—反射式 2)模拟前端 六、市面上血氧仪类型…

Spring 源码解析 - Bean创建过程 以及 解决循环依赖

一、Spring Bean创建过程以及循环依赖 上篇文章对 Spring Bean资源的加载注册过程进行了源码梳理和解析,我们可以得到结论,资源文件中的 bean 定义信息,被组装成了 BeanDefinition 存放进了 beanDefinitionMap 容器中,那 Bean 是…

图形视图框架QGraphicsScene(场景,概念)

QGraphicsScene 该类充当 QGraphicsItems 的容器。它与 QGraphicsView 一起使用,用于在 2D 表面上可视化图形项目,例如线条、矩形、文本甚至自定义项目。 QGraphicsScene具有的功能: 提供用管理大量数据项的高速接口传播事件到每一个图形项…

艹,终于在8226上把灯点亮了

接上次点文章ESP8266还可以这样玩这次,我终于学会了在ESP8266上面点亮LED灯了现在一个单片机的价格是几块,加上一个晶振,再来一个快递费,十几块钱还是需要的。所以能用这个ESP8266来当单片机玩,还是比较不错的可以在ub…

【设计模式】创建型设计模式

文章目录1. 基础①如何学习设计模式② 类模型③ 类关系2. 设计原则3. 模板方法① 定义②背景③ 要点④ 本质⑤ 结构图⑥ 样例代码4. 观察者模式① 定义②背景③ 要点④ 本质⑤ 结构图⑥ 样例代码5. 策略模式① 定义②背景③ 要点④ 本质⑤ 结构图⑥ 样例代码1. 基础 ①如何学习…

三维电子沙盘数字沙盘开发教程第7课

三维电子沙盘数字沙盘大数据人工智能开发教程第7课设置system.ini 如下内容Server122.112.229.220userGisTestPasswordchinamtouch.com该数据库中只提供 成都市火车南站附近的数据请注意,104.0648,30.61658利用三方工具,如幻影粒子:或者flash…

python例程:《彩图版飞机大战》程序

目录开发环境要求运行方法《彩图版飞机大战》程序使用说明源码示例源码及说明文档下载路径开发环境要求 本系统的软件开发及运行环境具体如下。 操作系统:Windows 7、Windows 10。 Python版本:Python 3.7.1。 开发工具:PyCharm 2018。…

软件测试拿了几个20K offer,分享一波面经

1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己,不断…

算法基础---基础算法

文章目录 快速排序归并排序二分 整数二分浮点数二分高精度 高精度加法高精度减法高精度乘法高精度除法前缀和 一维前缀和二维前缀和差分 一维差分二维差分双指针位运算离散化区间合并一、快速排序 思想:1.首先确定一个分界点(随机取任意一点为…

【云原生】k8s集群命令行工具kubectl基础操作命令实践详解

kubectl基础操作命令详解一、准备工作1.1、Replication Controller1.2、Deployment1.3、DaemonSet1.4、查看创建的svc和pod1.5、kubectl 命令自动补全设置二、kubectl语法三、基础操作命令3.1、api-resources3.2、api-versions3.3、create3.4、expose3.5、run3.6、set3.6.1、en…

filebrowser的权限实现RBAC效果

filebrowser安装和支持定制化,建议参考我这一篇文章filebrowser安装言归正传,目前发现客户需要有文件权限管理功能,我一开始也没仔细研究这块,我以为不支持呢,我今天就认真的了研究 下这个存储服务,其实是支…

前端网络安全

什么是同源策略同源指的是:协议、端口号、域名必须一致。他是浏览器的一个用于隔离潜在恶意文件的重要安全机制。限制了从同一个源加载的文档或脚本,与另一个源的资源进行交互。同源策略主要限制了三个方面:当前域下的js脚本不能够访问其他域…

jsoup 框架的使用指南

概述 参考: 官方文档jsoup的使用JSoup教程jsoup 在 GitHub 的开源代码 概念简介 jsoup 是一款基于 Java 的 HTML 解析器,它提供了一套非常省力的 API,不但能直接解析某个 URL 地址、HTML 文本内容,而且还能通过类似于 DOM、CS…

【Java进阶篇】——反射机制

一、反射的概念 1.1 反射出现的背景 Java程序中,所有对象都有两种类型:编译时类型和运行时类型,而很多时候对象的编译时类型和运行时类型不一致 Object obj new String("hello")、obj.getClass(); 如果某些变量或形参的声明类型…

1、Linux初级——linux命令

下载镜像:http://cn.ubuntu.com/dowload 一、基本命令 1、alias(给命令取别名) 例如:alias clls -la(只是临时的) 2、配置文件$ vim ~/.bashrc $ vim ~/.bashrc // 使用vim打开配置文件 (1)在配置文件…
最新文章