SonarQube规则之漏洞类型

Stella981
• 阅读 630

漏洞类型:

1、"@RequestMapping" methods should be "public"
漏洞 阻断
标注了RequestMapping是controller是处理web请求。既使方法修饰为private,同样也能被外部调用,因为spring通过反射调用方法,没有检查方法可视度,
2、"enum" fields should not be publicly mutable
漏洞 次要
枚举类域不应该是public,也不应该进行set
3、"File.createTempFile" should not be used to create a directory
漏洞 严重
File.createTempFile不应该被用来创建目录
4、"HttpServletRequest.getRequestedSessionId()" should not be used
漏洞 严重
HttpServletRequest.getRequestedSessionId()返回客户端浏览器会话id不要用,用HttpServletRequest.getSession().getId()
5、"javax.crypto.NullCipher" should not be used for anything other than testing
漏洞 阻断
NullCipher类提供了一种“身份密码”,不会以任何方式转换或加密明文。 因此,密文与明文相同。 所以这个类应该用于测试,从不在生产代码中。
6、"public static" fields should be constant
漏洞 次要
public static 域应该 final
7、Class variable fields should not have public accessibility
漏洞 次要
类变量域应该是private,通过set,get进行操作
8、Classes should not be loaded dynamically
漏洞 严重
不应该动态加载类,动态加载的类可能包含由静态类初始化程序执行的恶意代码.
Class clazz = Class.forName(className); // Noncompliant
9、Cookies should be "secure"
漏洞 次要
Cookie c = new Cookie(SECRET, secret); // Noncompliant; cookie is not secure
response.addCookie(c);
正:
Cookie c = new Cookie(SECRET, secret);
c.setSecure(true);
response.addCookie(c);
10、Credentials should not be hard-coded
漏洞 阻断
凭证不应该硬编码
11、Cryptographic RSA algorithms should always incorporate OAEP (Optimal Asymmetric Encryption Padding)
漏洞 严重
加密RSA算法应始终包含OAEP(最优非对称加密填充)
12、Default EJB interceptors should be declared in "ejb-jar.xml"
漏洞 阻断
默认EJB拦截器应在“ejb-jar.xml”中声明
13、Defined filters should be used
漏洞 严重
web.xml文件中定义的每个过滤器都应该在元素中使用。 否则不会调用此类过滤器。
14、Exceptions should not be thrown from servlet methods
漏洞 次要
不应该从servlet方法抛出异常
15、HTTP referers should not be relied on
漏洞 严重
不应依赖于http,将这些参数值中止后可能是安全的,但绝不应根据其内容作出决定。
如:
String referer = request.getHeader("referer"); // Noncompliant
if(isTrustedReferer(referer)){
//..
}
16、IP addresses should not be hardcoded
漏洞 次要
ip 地址不应该硬编码
17、Member variable visibility should be specified
漏洞 次要
应指定成员变量的可见性
18、Members of Spring components should be injected
漏洞 严重
spring组件的成员应注入,单例注入非静态成员共享会产生风险
19、Mutable fields should not be "public static"
漏洞 次要
多变在域不应为 public static
20、Neither DES (Data Encryption Standard) nor DESede (3DES) should be used
漏洞 阻断
不应使用DES(数据加密标准)和DESEDE(3DES)
21、Only standard cryptographic algorithms should be used
漏洞 严重
标准的加密算法如 SHA-256, SHA-384, SHA-512等,非标准算法是危险的,可能被功能者攻破算法
22、Pseudorandom number generators (PRNGs) should not be used in secure contexts
漏洞 严重
伪随机数生成器(PRNG)不应在安全上下文中使用
23、Return values should not be ignored when they contain the operation status code
漏洞 次要
当函数调用的返回值包含操作状态代码时,应该测试此值以确保操作成功完成。
24、Security constraints should be definedin
漏洞 阻断
应定义安全约束,当web.xml文件没有元素时,此规则引发了一个问题
25、SHA-1 and Message-Digest hash algorithms should not be used
漏洞 严重
不应该使用SHA-1和消息摘要散列算法,已证实不再安全
26、SQL binding mechanisms should be used
漏洞 阻断
应该使用SQL绑定机制
27、Struts validation forms should have unique names
漏洞 阻断
struts验证表单应有唯一名称
28、Throwable.printStackTrace(...) should not be called
漏洞 次要
Throwable.printStackTrace(...)会打印异常信息,但会暴露敏感信息
29、Untrusted data should not be stored in sessions
漏洞 主要
不受信任的数据不应存储在会话中。
Web会话中的数据被认为在“信任边界”内。 也就是说,它被认为是值得信赖的。 但存储未经身份验证的用户未经验证的数据违反信任边界,并可能导致该数据被不当使用。
30、Values passed to LDAP queries should be sanitized
漏洞 严重
传递到LDAP查询的值应该被清理
31、Values passed to OS commands should be sanitized
漏洞 严重
传递给OS命令的值应该被清理
32、Web applications should not have a "main" method
漏洞 严重
web 应用中不应有一个main方法

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
Stella981 Stella981
2年前
Linux应急响应(三):挖矿病毒
0x00前言随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式。新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染的成功率,通过利用永恒之蓝(EternalBlue)、web攻击多种漏洞(如Tomcat弱口令攻击、WeblogicWLS组件漏洞、Jboss
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这