本文主要是介绍应用软件安全编程--28SSL 连接时要进行服务器身份验证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当进行SSL 连接时,服务器身份验证处于禁用状态。在某些使用SSL 连接的库中,默认情况下不 验证服务器证书。这相当于信任所有证书。
对 SSL 连接时要进行服务器身份验证的情况,示例1给出了不规范用法(Java 语言)示例。示例2 给出了规范用法(Java 语言)示例。
示例1:SimpleEmail email = new SimpleEmail();email.setHostName("smtp.testemail.com");email.setCharset("UTF-8");email.setSmtpPort(25);email.setAuthenticator(new DefaultAuthenticator(name, pwd));email.setSSLOnConnect(true);email.setFrom("test@163.com");email.setSubject("测试主题");email.setMsg("邮件内容)");email.addTo("admin@163.com");email.send();
上述代码片段没有明确地验证服务器证书。
当尝试连接到 smtp.testemail.com:25 时,此应用程序将随时接受颁发给"hackedserver.com" 的证 书。此时,当服务器被黑客攻击发生 SSL 连接中断时,应用程序可能会泄露用户敏感信息。
当进行 SSL 连接时,需要注意进行服务器验证检查。根据所使用的库,验证服务器身份并建立安 全的 SSL 连接。
示例2:SimpleEmail email = new SimpleEmail();email.setHostName("smtp.testemail.com");email.setCharset("UTF-8");email.setSmtpPort(25);email.setAuthenticator(new DefaultAuthenticator(name,pwd));email.setSSLCheckServerldentity(true);email.setSSLOnConnect(true);email.setFrom("test@163.com");email.setSubject("测试主题");email.setMsg("邮件内容)");email.addTo("admin@163.com");email.send();
上述代码示例中,明确验证服务器证书。
这篇关于应用软件安全编程--28SSL 连接时要进行服务器身份验证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!