漏洞類型:
一、"@RequestMapping" methods should be "public"
漏洞 阻斷
標註了RequestMapping是controller是處理web請求。既使方法修飾爲private,一樣也能被外部調用,由於spring經過反射調用方法,沒有檢查方法可視度,
二、"enum" fields should not be publicly mutable
漏洞 次要
枚舉類域不該該是public,也不該該進行set
三、"File.createTempFile" should not be used to create a directory
漏洞 嚴重
File.createTempFile不該該被用來建立目錄
四、"HttpServletRequest.getRequestedSessionId()" should not be used
漏洞 嚴重
HttpServletRequest.getRequestedSessionId()返回客戶端瀏覽器會話id不要用,用HttpServletRequest.getSession().getId()
五、"javax.crypto.NullCipher" should not be used for anything other than testing
漏洞 阻斷
NullCipher類提供了一種「身份密碼」,不會以任何方式轉換或加密明文。 所以,密文與明文相同。 因此這個類應該用於測試,從不在生產代碼中。
六、"public static" fields should be constant
漏洞 次要
public static 域應該 final
七、Class variable fields should not have public accessibility
漏洞 次要
類變量域應該是private,經過set,get進行操做
八、Classes should not be loaded dynamically
漏洞 嚴重
不該該動態加載類,動態加載的類可能包含由靜態類初始化程序執行的惡意代碼.
Class clazz = Class.forName(className); // Noncompliant
九、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);
十、Credentials should not be hard-coded
漏洞 阻斷
憑證不該該硬編碼
十一、Cryptographic RSA algorithms should always incorporate OAEP (Optimal Asymmetric Encryption Padding)
漏洞 嚴重
加密RSA算法應始終包含OAEP(最優非對稱加密填充)
十二、Default EJB interceptors should be declared in "ejb-jar.xml"
漏洞 阻斷
默認EJB攔截器應在「ejb-jar.xml」中聲明
1三、Defined filters should be used
漏洞 嚴重
web.xml文件中定義的每一個過濾器都應該在<filter-mapping>元素中使用。 不然不會調用此類過濾器。
1四、Exceptions should not be thrown from servlet methods
漏洞 次要
不該該從servlet方法拋出異常
1五、HTTP referers should not be relied on
漏洞 嚴重
不該依賴於http,將這些參數值停止後多是安全的,但毫不應根據其內容做出決定。
如:
String referer = request.getHeader("referer"); // Noncompliant
if(isTrustedReferer(referer)){
//..
}
1六、IP addresses should not be hardcoded
漏洞 次要
ip 地址不該該硬編碼
1七、Member variable visibility should be specified
漏洞 次要
應指定成員變量的可見性
1八、Members of Spring components should be injected
漏洞 嚴重
spring組件的成員應注入,單例注入非靜態成員共享會產生風險
1九、Mutable fields should not be "public static"
漏洞 次要
多變在域不該爲 public static
20、Neither DES (Data Encryption Standard) nor DESede (3DES) should be used
漏洞 阻斷
不該使用DES(數據加密標準)和DESEDE(3DES)
2一、Only standard cryptographic algorithms should be used
漏洞 嚴重
標準的加密算法如 SHA-256, SHA-384, SHA-512等,非標準算法是危險的,可能被功能者攻破算法
2二、Pseudorandom number generators (PRNGs) should not be used in secure contexts
漏洞 嚴重
僞隨機數生成器(PRNG)不該在安全上下文中使用
2三、Return values should not be ignored when they contain the operation status code
漏洞 次要
當函數調用的返回值包含操做狀態代碼時,應該測試此值以確保操做成功完成。
2四、Security constraints should be definedin
漏洞 阻斷
應定義安全約束,當web.xml文件沒有<security-constraint>元素時,此規則引起了一個問題
2五、SHA-1 and Message-Digest hash algorithms should not be used
漏洞 嚴重
不該該使用SHA-1和消息摘要散列算法,已證明再也不安全
2六、SQL binding mechanisms should be used
漏洞 阻斷
應該使用SQL綁定機制
2七、Struts validation forms should have unique names
漏洞 阻斷
struts驗證表單應有惟一名稱
2八、Throwable.printStackTrace(...) should not be called
漏洞 次要
Throwable.printStackTrace(...)會打印異常信息,但會暴露敏感信息
2九、Untrusted data should not be stored in sessions
漏洞 主要
不受信任的數據不該存儲在會話中。
Web會話中的數據被認爲在「信任邊界」內。 也就是說,它被認爲是值得信賴的。 但存儲未經身份驗證的用戶未經驗證的數據違反信任邊界,並可能致使該數據被不當使用。
30、Values passed to LDAP queries should be sanitized
漏洞 嚴重
傳遞到LDAP查詢的值應該被清理
3一、Values passed to OS commands should be sanitized
漏洞 嚴重
傳遞給OS命令的值應該被清理
3二、Web applications should not have a "main" method
漏洞 嚴重
web 應用中不該有一個main方法java