ANDROID.LIFECYCLE.SV.FRAGMENTINJ
|
未经验证的片段类名 |
1 |
True |
是 |
ANDROID.LIFECYCLE.SV.GETEXTRA
|
外部数据未经验证 |
3 |
True |
是 |
ANDROID.NPE
|
取消引用 Android 应用程序中的 null 值 |
4 |
True |
是 |
ANDROID.RLK.MEDIAPLAYER
|
退出时未释放 Media player |
1 |
True |
是 |
ANDROID.RLK.MEDIARECORDER
|
退出时未释放 Media recorder |
1 |
True |
是 |
ANDROID.RLK.SQLCON
|
退出时未关闭 SQL 连接 |
1 |
True |
是 |
ANDROID.RLK.SQLOBJ
|
退出时未关闭 SQL 对象 |
1 |
True |
是 |
ANDROID.UF.BITMAP
|
使用回收的位图 |
2 |
True |
是 |
ANDROID.UF.CAMERA
|
使用释放的照相机 |
2 |
True |
是 |
ANDROID.UF.MEDIAPLAYER
|
使用释放的 Media player |
2 |
True |
是 |
ANDROID.UF.MEDIARECORDER
|
使用释放的 Media recorder |
2 |
True |
是 |
CMP.CLASS
|
按类名进行比较 |
4 |
False |
否 |
CMPF.FLOAT
|
应避免对浮点类型进行相等性检查 |
4 |
True |
否 |
CMP.OBJ
|
使用 == 比较对象 |
4 |
True |
否 |
CMP.STR
|
使用 == 比较字符串 |
4 |
True |
否 |
COV.CMP
|
方法 compareTo() 应具有签名“public int compareTo(Object)” |
4 |
True |
否 |
ECC.EMPTY
|
空 catch 子句 |
4 |
True |
否 |
EHC.EQ
|
类定义了 hashCode() 但不定义 equals() |
4 |
True |
否 |
EHC.HASH
|
类定义了 equals() 但不定义 hashCode() |
4 |
True |
否 |
ESCMP.EMPTYSTR
|
低效的空字符串比较 |
4 |
True |
否 |
EXC.BROADTHROWS
|
方法具有过于广泛的抛出声明 |
4 |
True |
否 |
FIN.EMPTY
|
应移除 Empty finalize() 方法 |
3 |
True |
否 |
FIN.NOSUPER
|
要实施 finalize() 方法,应调用 super.finalize() |
3 |
True |
否 |
FSC.PRT
|
类及其超类具有同名的受保护字段 |
4 |
False |
否 |
FSC.PRV
|
类及其超类具有同名的私有字段 |
4 |
False |
否 |
FSC.PUB
|
类及其超类具有同名的公共字段 |
4 |
False |
否 |
JAVA.SV.EMAIL.HOST
|
在不验证的情况下将电子邮件发送到主机。 |
3 |
True |
是 |
JAVA.SV.XML.INVALID
|
在将 XML 解组为 Java 对象前不对其进行验证 |
2 |
True |
是 |
JD.BITCMP
|
在表达式中使用非短路逻辑 |
3 |
True |
否 |
JD.BITMASK
|
位运算中可能存在错误 |
3 |
True |
否 |
JD.BITR
|
冗余表达式 |
3 |
True |
否 |
JD.CALL.WRONGSTATIC
|
通过实例引用调用静态方法 |
4 |
True |
否 |
JD.CAST.COL.MIGHT
|
可能存在针对集合的 ClassCastException |
4 |
False |
否 |
JD.CAST.COL.MUST
|
用于收集的 ClassCastException |
4 |
True |
否 |
JD.CAST.DOWNCAST
|
可能存在针对子类型的 ClassCastException |
4 |
True |
否 |
JD.CAST.KEY
|
用于检索集合中元素的键类型可疑 |
4 |
True |
否 |
JD.CAST.SUSP.MIGHT
|
可能存在针对不同类型的 ClassCastException |
4 |
True |
否 |
JD.CAST.SUSP.MUST
|
针对不同类型的 ClassCastException |
4 |
True |
否 |
JD.CAST.UPCAST
|
可能存在针对子类型的 ClassCastException |
4 |
True |
否 |
JD.CATCH
|
捕获运行时异常 |
4 |
True |
否 |
JD.CONCUR
|
可能存在 ConcurrentModificationException |
3 |
True |
否 |
JD.EQ.ARR
|
对于数组调用“equals” |
4 |
True |
否 |
JD.EQ.UTA
|
对于不兼容的类型(数组和非数组)调用 equals |
4 |
True |
否 |
JD.EQ.UTC
|
对于不兼容的类型调用 equals |
4 |
True |
否 |
JD.FINRET
|
finally 中的 Return |
4 |
True |
否 |
JD.IFBAD
|
多余的“if”语句 |
3 |
True |
否 |
JD.IFEMPTY
|
多余的“if”语句。未完成的代码 |
3 |
True |
否 |
JD.INF.ALLOC
|
无限循环内的分配 |
4 |
True |
否 |
JD.INF.AREC
|
明显的无限递归 |
4 |
True |
否 |
JD.INST.TRUE
|
多余的“instanceof”条件 |
4 |
True |
否 |
JD.LIST.ADD
|
已添加到自身的容器 |
4 |
True |
否 |
JD.LOCK
|
无解锁的锁 |
2 |
True |
是 |
JD.LOCK.NOTIFY
|
已调用带持有锁的“notify”方法 |
4 |
True |
否 |
JD.LOCK.SLEEP
|
已调用带持有锁的“sleep”方法 |
4 |
True |
否 |
JD.LOCK.WAIT
|
已调用带持有锁的“wait”方法 |
4 |
True |
否 |
JD.METHOD.CBS
|
方法可以为静态方法 |
4 |
False |
否 |
JD.NEXT
|
可能存在“NoSuchElementException” |
4 |
True |
是 |
JD.OVER
|
不匹配的覆盖 |
4 |
True |
否 |
JD.RC.EXPR.CHECK
|
测试表达式始终为 true |
4 |
True |
否 |
JD.RC.EXPR.DEAD
|
导致死代码的冗余检查 |
4 |
False |
否 |
JD.ST.POS
|
错误检查方法“indexOf” |
4 |
True |
否 |
JD.SYNC.DCL
|
双重检查锁定 |
4 |
True |
否 |
JD.SYNC.IN
|
不一致的同步 |
4 |
True |
否 |
JD.THREAD.RUN
|
显式调用“Thread.run”方法 |
4 |
True |
否 |
JD.UMC.FINALIZE
|
显式调用“Object.finalize”方法 |
3 |
True |
否 |
JD.UMC.RUNFIN
|
已调用 runFinalizersOnExit() |
3 |
True |
否 |
JD.UMC.WAIT
|
对于错误对象调用的 Wait |
4 |
True |
否 |
JD.UNCAUGHT
|
未捕获的异常 |
4 |
True |
否 |
JD.UN.MET
|
未使用的非私有方法 |
4 |
False |
否 |
JD.UNMOD
|
对不可修改的集合的修改 |
2 |
True |
是 |
JD.UN.PMET
|
未使用的私有方法 |
3 |
True |
否 |
JD.VNU
|
在变量分配后从未读取变量 |
4 |
True |
否 |
JD.VNU.NULL
|
在 null 分配后从未读取变量 |
4 |
True |
否 |
MNA.CAP
|
方法名称应以非大写字母开头 |
4 |
True |
否 |
MNA.CNS
|
方法与构造函数同名,但不是构造函数 |
4 |
True |
否 |
MNA.SUS
|
可疑的方法名称 |
4 |
True |
否 |
NPE.COND
|
空指针取消引用,其中空值来自条件 |
1 |
True |
是 |
NPE.CONST
|
空指针取消引用,其中空值来自常数 |
1 |
True |
是 |
NPE.RET
|
取消引用从方法返回的空值 |
1 |
True |
是 |
NPE.RET.UTIL
|
取消引用映射或集合返回的空值 |
1 |
True |
是 |
NPE.STAT
|
取消引用返回值(统计数据)的空指针 |
4 |
False |
是 |
REDUN.DEF
|
将表达式分配给其自身 |
4 |
True |
否 |
REDUN.EQ
|
可疑的 equals() 调用,两侧表达式相同 |
4 |
True |
否 |
REDUN.EQNULL
|
以表达式和空值(永远不可能为 True)进行了可疑的 equals() 调用 |
4 |
True |
否 |
REDUN.FINAL
|
多余的 final 修饰符 |
4 |
True |
否 |
REDUN.NULL
|
使用变量替换空常数 |
4 |
True |
否 |
REDUN.OP
|
可疑的运算,两侧表达式相同 |
4 |
True |
否 |
RI.IGNOREDCALL
|
已忽略在 immutable 对象上调用的方法返回的值 |
4 |
True |
否 |
RI.IGNOREDNEW
|
已忽略新创建的对象 |
4 |
True |
否 |
RLK.AWT
|
退出时未处置 AWT 对象 |
1 |
True |
是 |
RLK.FIELD
|
在字段中存储的系统资源可能泄露 |
4 |
True |
否 |
RLK.HIBERNATE
|
退出时未关闭 Hibernate 对象 |
1 |
True |
是 |
RLK.IMAGEIO
|
退出时未关闭 ImageIO 流 |
1 |
True |
是 |
RLK.IN
|
退出时未关闭输入流 |
1 |
True |
是 |
RLK.JNDI
|
退出时未关闭 JNDI 上下文 |
1 |
True |
是 |
RLK.JPA
|
退出时未关闭 EntityManager |
1 |
True |
是 |
RLK.MAIL
|
退出时未关闭 Java 邮件对象 |
1 |
True |
是 |
RLK.MICRO
|
退出时未关闭 Java Microedition 连接 |
1 |
True |
是 |
RLK.NIO
|
退出时未关闭 NIO 对象 |
1 |
True |
是 |
RLK.OUT
|
退出时未关闭输出流 |
1 |
True |
是 |
RLK.SOCK
|
退出时未关闭套接字 |
1 |
True |
是 |
RLK.SQLCON
|
退出时未关闭 SQL 连接 |
1 |
True |
是 |
RLK.SQLOBJ
|
退出时未关闭 SQL 对象 |
1 |
True |
是 |
RLK.SWT
|
退出时未处置 SWT 对象 |
1 |
True |
是 |
RLK.ZIP
|
退出时未关闭 Zip 文件 |
1 |
True |
是 |
RNU.THIS
|
比较此值和空值,但此值不能为空值 |
4 |
True |
否 |
RR.IGNORED
|
已忽略返回的值 |
4 |
True |
否 |
RTC.CALL
|
转换的类型是冗余的 |
4 |
True |
否 |
SPRING.AUTHC.ABSENT
|
没有用于关键资源的配置 |
2 |
False |
否 |
SPRING.AUTHC.MISSING
|
缺少针对关键功能的身份验证 |
2 |
True |
否 |
SPRING.AUTHZ.ABSENT
|
没有用于受保护资源的配置 |
2 |
False |
否 |
SPRING.AUTHZ.MISSING
|
缺少授权 |
2 |
True |
否 |
STRCON.LOOP
|
在循环中对字符串使用 append |
4 |
True |
否 |
SV.AUTH.BYPASS.MIGHT
|
不正确的身份验证 |
2 |
True |
是 |
SV.AUTH.BYPASS.MUST
|
不正确的身份验证 |
2 |
True |
是 |
SV.AUTH.HASH.MIGHT
|
使用弱加密算法 |
3 |
True |
是 |
SV.AUTH.HASH.MUST
|
使用弱加密算法 |
3 |
True |
是 |
SV.CERT.INVALID
|
必须通过构造证书路径来验证证书。 |
1 |
True |
是 |
SV.CLASSDEF.INJ
|
运行时类定义注入 |
2 |
True |
是 |
SV.CLASSLOADER.INJ
|
类加载器 URL 注入 |
2 |
True |
是 |
SV.CLEXT.CLLOADER
|
类扩展了“java.lang.ClassLoader” |
4 |
False |
否 |
SV.CLEXT.POLICY
|
类扩展了 java.security.Policy |
4 |
False |
否 |
SV.CLLOADER
|
直接使用 Classloader |
4 |
False |
否 |
SV.CLONE.SUP
|
类执行“clone”方法但是不执行 Cloneable |
4 |
False |
否 |
SV.CSRF.GET
|
GET 请求中的 CSRF 令牌 |
4 |
False |
是 |
SV.CSRF.ORIGIN
|
无来源检查的请求处理程序 |
4 |
False |
是 |
SV.CSRF.TOKEN
|
无 CSRF 检查的状态变化请求处理程序 |
4 |
False |
是 |
SV.DATA.BOUND
|
不受信任的数据泄漏到可信的存储器中 |
3 |
True |
是 |
SV.DATA.DB
|
数据注入 |
2 |
True |
是 |
SV.DATA.FILE
|
可能会上传并自动处理潜在的有害文件 |
4 |
True |
是 |
SV.DOS.ARRINDEX
|
用于数组访问的受污染的索引 |
3 |
True |
是 |
SV.DOS.ARRSIZE
|
用于数组分配的受污染的 size |
3 |
True |
是 |
SV.DOS.TMPFILEDEL
|
在 JVM 的生存期间保留临时文件 |
3 |
True |
是 |
SV.DOS.TMPFILEEXIT
|
保留临时文件 |
3 |
True |
是 |
SV.ECV
|
证书验证为空 |
4 |
False |
否 |
SV.ECV.TRUSTMANAGER
|
接口 X509TrustManager 的不安全实现。 |
2 |
False |
否 |
SV.EMAIL
|
未检查的电子邮件 |
2 |
True |
是 |
SV.EXEC
|
进程注入 |
2 |
True |
是 |
SV.EXEC.DIR
|
进程注入。工作目录 |
2 |
True |
是 |
SV.EXEC.ENV
|
进程注入。环境变量 |
2 |
True |
是 |
SV.EXEC.LOCAL
|
进程注入。本地参数 |
3 |
True |
是 |
SV.EXEC.PATH
|
不受信任的搜索路径 |
4 |
True |
否 |
SV.EXPOSE.FIELD
|
静态字段可能被恶意代码更改 |
4 |
False |
否 |
SV.EXPOSE.FIN
|
方法 finalize() 应该具有 protected 访问修饰符,而非 public 访问修饰符 |
4 |
False |
否 |
SV.EXPOSE.IFIELD
|
应将实例字段设置为 final 字段 |
4 |
False |
否 |
SV.EXPOSE.MUTABLEFIELD
|
静态 mutable 字段可由恶意代码访问 |
4 |
False |
否 |
SV.EXPOSE.RET
|
内部表示形式可能已暴露 |
4 |
False |
否 |
SV.EXPOSE.STORE
|
方法存储对 mutable 对象的引用 |
4 |
False |
否 |
SV.HASH.NO_SALT
|
在没有 salt 的情况下使用单向密码哈希 |
3 |
True |
否 |
SV.HTTP_SPLIT
|
Http 响应拆分 |
2 |
True |
是 |
SV.IL.DEV
|
设计信息泄露 |
3 |
True |
是 |
SV.IL.FILE
|
文件名泄露 |
3 |
True |
是 |
SV.IL.SESSION
|
记录会话 ID |
3 |
True |
是 |
SV.IL.SESSION.CLIENT
|
不应使用 HttpServletRequest.getRequestedSessionId 方法。 |
4 |
True |
是 |
SV.INT_OVF
|
被污染的数据可能导致整数溢出 |
2 |
True |
是 |
SV.LDAP
|
未经验证的用户输入被用作 LDAP 筛选器 |
2 |
True |
是 |
SV.LDAP.ANON
|
不正确的身份验证 |
4 |
True |
是 |
SV.LOADLIB.INJ
|
对“loadLibrary”方法的不受信任的调用 |
4 |
True |
否 |
SV.LOG_FORGING
|
日志伪造 |
3 |
True |
是 |
SV.PASSWD.HC
|
硬编码密码 |
2 |
True |
是 |
SV.PASSWD.HC.EMPTY
|
空密码 |
2 |
True |
是 |
SV.PASSWD.HC.MINLEN
|
最小字符长度为 15 的硬编码密码 |
2 |
True |
是 |
SV.PASSWD.PLAIN
|
纯文本密码 |
2 |
True |
是 |
SV.PASSWD.PLAIN.HC
|
纯文本密码 |
2 |
True |
是 |
SV.PATH
|
路径和文件名注入 |
3 |
True |
是 |
SV.PATH.INJ
|
文件注入 |
3 |
True |
是 |
SV.PERMS.HOME
|
在未设置权限的情况下在用户主目录中创建了文件 |
2 |
True |
是 |
SV.PERMS.WIDE
|
权限过宽 |
4 |
True |
是 |
SV.PRIVILEGE.MISSING
|
调用的方法不得在 doPrivileged 块内 |
4 |
True |
否 |
SV.RANDOM
|
使用不安全的随机数生成程序 |
4 |
True |
否 |
SV.SCRIPT
|
脚本执行 |
2 |
True |
是 |
SV.SENSITIVE.DATA
|
写入了未加密的敏感数据 |
2 |
True |
是 |
SV.SENSITIVE.OBJ
|
存储了包含未加密的敏感数据的对象 |
2 |
True |
否 |
SV.SERIAL.INON
|
接口扩展了“Serializable” |
4 |
False |
否 |
SV.SERIAL.NOFINAL
|
serializable 类中的方法 readObject() 和 writeObject() 应为最终方法 |
4 |
False |
否 |
SV.SERIAL.NON
|
类实施了“Serializable” |
4 |
False |
否 |
SV.SERIAL.NOREAD
|
应为 serializable 类定义方法 readObject() |
4 |
False |
否 |
SV.SERIAL.NOWRITE
|
应为 serializable 类定义方法 writeObject() |
4 |
False |
否 |
SV.SERIAL.OVERRIDE
|
不要从 readObject() 方法调用可替代的方法 |
4 |
True |
否 |
SV.SERIAL.SIG
|
serializable 类中的方法 readObject() 和 writeObject() 应具有正确的签名 |
4 |
False |
否 |
SV.SESSION.FIXATION.COOKIE
|
Cookie 应该能够有效抵御会话固定攻击 |
4 |
True |
是 |
SV.SHARED.VAR
|
从 servlet 对静态变量的访问未同步 |
4 |
True |
否 |
SV.SOCKETS
|
错误做法:使用套接字 |
4 |
False |
否 |
SV.SPRING.FIXATION
|
已禁用会话固定保护 |
2 |
True |
是 |
SV.SQL
|
Sql 注入 |
2 |
True |
是 |
SV.SQL.DBSOURCE
|
在 SQL 语句中使用未检查的数据库信息 |
3 |
True |
是 |
SV.SSRF.URI
|
URI 基于失效的用户输入。 |
4 |
True |
是 |
SV.STRBUF.CLEAN
|
字符串缓冲区未清除 |
3 |
False |
是 |
SV.STRUTS.NOTRESET
|
Struts 表单:不一致重置 |
4 |
False |
否 |
SV.STRUTS.NOTVALID
|
Struts 表单:不一致验证 |
4 |
False |
否 |
SV.STRUTS.PRIVATE
|
Struts 表单:非私有字段 |
4 |
False |
否 |
SV.STRUTS.RESETMET
|
Struts 表单:重置方法 |
4 |
False |
否 |
SV.STRUTS.STATIC
|
Struts 表单:静态字段 |
4 |
False |
否 |
SV.STRUTS.VALIDMET
|
Struts 表单:验证方法 |
4 |
False |
否 |
SV.STRUTS.VER
|
易受攻击的 Apache Struts 版本的使用情况 |
2 |
True |
否 |
SV.TAINT
|
被污染的数据 |
3 |
False |
是 |
SV.TAINT_NATIVE
|
被污染的数据进入了本机代码 |
3 |
True |
是 |
SV.TMPFILE
|
篡改临时文件路径 |
3 |
True |
是 |
SV.UMC.EXIT
|
System.exit() 和 Runtime.exit() 方法调用不应用在 servlet 代码中 |
4 |
False |
否 |
SV.UMC.JDBC
|
应用程序应避免直接调用 DriverManager.getConnection() |
4 |
False |
否 |
SV.UMC.THREADS
|
错误做法:使用线程管理 |
4 |
False |
否 |
SV.UMD.MAIN
|
残留调试代码 - 主方法 |
4 |
False |
否 |
SV.USE.POLICY
|
直接使用策略方法 |
4 |
False |
否 |
SV.WEAK.CRYPT
|
使用被破坏的或有风险的加密算法 |
3 |
True |
否 |
SV.WEAK.KEYS.AES
|
加密算法中的密钥长度不足 |
3 |
True |
是 |
SV.WEAK.KEYS.DH
|
加密算法中的密钥长度不足 |
3 |
True |
是 |
SV.WEAK.KEYS.DSA
|
加密算法中的密钥长度不足 |
3 |
True |
是 |
SV.WEAK.KEYS.EC
|
加密算法中的密钥长度不足 |
3 |
True |
是 |
SV.WEAK.KEYS.RSA
|
加密算法中的密钥长度不足 |
3 |
True |
是 |
SV.WEAK.TLS
|
不应使用弱 SSL/TLS 协议。 |
2 |
True |
是 |
SV.XPATH
|
未经验证的用户输入被用作 XPath 表达式 |
2 |
True |
是 |
SV.XSS.COOKIE
|
无 setHttpOnly 标记的敏感 Cookie |
4 |
True |
是 |
SV.XSS.COOKIE.SECURE
|
无安全协议的敏感 Cookie |
1 |
True |
是 |
SV.XSS.DB
|
跨站脚本 (Stored XSS) |
2 |
True |
是 |
SV.XSS.REF
|
跨站脚本 (Reflected XSS) |
2 |
True |
是 |
SV.XXE.DBF
|
XML 外部实体攻击的可能性 |
4 |
True |
否 |
SV.XXE.SF
|
XML 外部实体攻击的可能性 |
4 |
True |
否 |
SV.XXE.SPF
|
XML 外部实体攻击的可能性 |
4 |
True |
否 |
SV.XXE.TF
|
XML 外部实体攻击的可能性 |
4 |
True |
否 |
SV.XXE.XIF
|
XML 外部实体攻击的可能性 |
4 |
True |
否 |
SV.XXE.XRF
|
XML 外部实体攻击的可能性 |
4 |
True |
否 |
SYNCH.NESTED
|
同步方法调用了其他持有相同锁的同步方法 |
4 |
True |
否 |
SYNCH.NESTEDS
|
同步静态方法调用了其他持有相同锁的同步静态方法 |
4 |
True |
否 |
UC.BOOLB
|
通过布尔表达式创建的不必要的新布尔对象 |
4 |
True |
否 |
UC.BOOLS
|
通过字符串表达式创建的不必要的新布尔对象 |
4 |
True |
否 |
UC.STRS
|
通过字符串表达式创建的不必要的新字符串对象 |
4 |
True |
否 |
UC.STRV
|
创建的不必要的空字符串对象 |
4 |
True |
否 |
UF.IMAGEIO
|
使用关闭的 ImageIO 流 |
2 |
True |
是 |
UF.IN
|
使用关闭的输入流 |
2 |
True |
是 |
UF.JNDI
|
使用关闭的 JNDI 上下文 |
2 |
True |
是 |
UF.MAIL
|
使用关闭的 Java 邮件对象 |
2 |
True |
是 |
UF.MICRO
|
使用关闭的 Java Microedition 连接 |
2 |
True |
是 |
UF.NIO
|
使用关闭的 NIO 对象 |
2 |
True |
是 |
UF.OUT
|
使用关闭的输出流 |
2 |
True |
是 |
UF.SOCK
|
使用关闭的套接字 |
2 |
True |
是 |
UF.SQLCON
|
使用关闭的 SQL 连接 |
2 |
True |
是 |
UF.SQLOBJ
|
使用关闭的 SQL 对象 |
2 |
True |
是 |
UF.ZIP
|
使用关闭的 zip 文件 |
2 |
True |
是 |
UMC.EXIT
|
System.exit() 方法调用并非所需 |
4 |
False |
否 |
UMC.GC
|
System.gc() 方法调用并非所需 |
4 |
False |
否 |
UMC.SYSERR
|
使用 System.err 方法调用的调试打印并非所需 |
4 |
False |
否 |
UMC.SYSOUT
|
使用 System.out 方法调用的调试打印并非所需 |
4 |
False |
否 |
UMC.TOSTRING
|
针对字符串自变量调用的不必要的 toString() 方法 |
4 |
True |
否 |