SonarQube规则之漏洞类型
漏洞类型:
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文件中定义的每个过滤器都应该在<filter-mapping>元素中使用。 否则不会调用此类过滤器。
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文件没有<security-constraint>元素时,此规则引发了一个问题
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方法
SonarQube规则之漏洞类型的更多相关文章
- SonarQube规则之bug类型
1.".equals()" should not be used to test the values of "Atomic" classes.bug 主要不要 ...
- "MySql.Data.MySqIClient.MySqlProviderSevices”违反了继承安全 性规则。派生类型必须与基类型的安全可访问性匹配或者比基类型的安 全可访问性低。 "解决方法
写Code First 时(使用的是MySql数据库),添加好EntityFrame.MySql.Data .MySql.Data.Entity后 ,写好TestDbContext类. 运行时报出一个 ...
- SonarQube中三种类型的代码规则
https://www.cnblogs.com/guoguochong/p/9117829.html 1.概述SonarQube(sonar)是一个 开源 平台,用于 管理 源代码的 质量 . Son ...
- SonarQube规则之坏味道类型
1.Abbreviation As Word In Name (默认 关闭)坏味道 主要检查验证标识符名称中的缩写(连续大写字母)长度,还允许执行骆驼案例命名allowedAbbreviationLe ...
- 从零开始的白帽子学习--stage1--常见漏洞类型介绍--part3--不安全的文件上传
Q:什么是文件上传漏洞 A:文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像.上传附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型.后缀名.大小等 ...
- Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析
Hashtable 是一个很常见的数据结构类型,前段时间阿里的面试官说只要搞懂了HashTable,hashMap,HashSet,treeMap,treeSet这几个数据结构,阿里的数据结构面试没问 ...
- AOSP常见漏洞类型简介
Heap/Stack Overflow(CVE-2017-0541) 漏洞出现在PushcdlStack函数中,如下所示 # /external/sonivox/arm-wt-22k/lib_sr ...
- [转] Linux下防火墙iptables用法规则详及其防火墙配置
from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...
- SonarQube安装文档
1.SonarQube 1.1 SonarQube介绍 SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误. SonarQube是否可以使用自定义规则由开发人员的开 ...
随机推荐
- 系统分析与设计HW5
个人作业 领域建模 a. 阅读 Asg_RH 文档,按用例构建领域模型. 按 Task2 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸 说明:请不要受 PCMEF 层次结构影响.你 ...
- C# 无焦点获取扫码枪扫码信息
代码网上有的是,多是需要窗体焦点直接show出扫码信息(usb,模拟键盘,hook) 怎样才能真的无焦点获取? 用串口方式 usb转串口 以接收串口通讯消息的方式获取扫码信息
- Jackson常用注解及用法
最近写项目,用到Jackson的一些注解,总结一下,帮助自己记忆. 1.@JsonIgnore 和 @JsonIgnoreProperties 两个注解可以对照比较后选择使用: @JsonIgnore ...
- python pandas 自动生成批量测试数据插入数据库 mysql
1.python连接数据库游标 # coding:utf-8 from sqlalchemy import create_engine class connet_databases: def __in ...
- Java类加载器总结网址
http://blog.csdn.net/gjanyanlig/article/details/6818655
- 路由器桥接时,为什么要关闭 DHCP 服务器?
问:看网上的一些教程,路由器设置无线桥接的时候,副路由器中的 DHCP 服务器需要关闭,请问这是为什么? 答:两个路由器无线桥接时,之所以要关闭副路由器的 DHCP 服务器,是为了避免 IP 地址错误 ...
- Docker最详细入门教程
Docker原理.详细入门教程 https://blog.csdn.net/deng624796905/article/details/86493330 阮一峰Docker入门讲解 http://ww ...
- MySQL服务意外停止
先说一下,发现MySQL服务停了,启动就又好了,但是好奇服务意外停止的原因,所以看了一下MySQL的错误日志. 但是到底是哪个错误导致MySQL服务意外终止,还没有定论,故有了此篇文章,还望知道原因的 ...
- 部署第一个servlet应用到tomcat上
部署第一个servlet应用到tomcat上 搭建环境 eclipse的EE版本 eclipse官网 创建一个java的应用程序 1.File->new java project 导入servl ...
- 线程中断:Thread类中interrupt()、interrupted()和 isInterrupted()方法详解
首先看看官方说明: interrupt()方法 其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行. i ...