SV.ECV

此检查器会检测空 SSL 证书验证的情况。

将在无关紧要地实施 org.apache.http.conn.ssl.X509HostnameVerifier 接口的“验证”方法的类上报告 SV.ECV 缺陷。

漏洞与风险

如果证书验证为空,所有 SSL 证书将被视为有效。这样便存在中间人攻击的可能性,导致入侵者能够访问安全的数据。

缓解与预防

要预防此问题,实施 X509HostnameVerifier 接口的类的“验证”方法应执行实际的验证,并且不应为空或由单个返回语句组成。

漏洞代码示例

复制
private static X509HostnameVerifier ACCEPT_ALL_HOSTNAMES =  
    new X509HostnameVerifier() {
        public void verify(String host, String[] cns, String[] subjectAlts) throws SSLException {
        }
        public void verify(String host, X509Certificate cert) throws SSLException {
        }
        public void verify(String host, SSLSocket ssl) throws IOException {
        }
        public boolean verify(String host, SSLSession session) { 
        return true;
    }
};

安全培训

应用程序安全培训材料由 Secure Code Warrior 提供。