应用软件安全编程--28SSL 连接时要进行服务器身份验证

当进行SSL 连接时,服务器身份验证处于禁用状态。在某些使用SSL 连接的库中,默认情况下不 验证服务器证书。这相当于信任所有证书。

对 SSL 连接时要进行服务器身份验证的情况,示例1给出了不规范用法(Java 语言)示例。示例2 给出了规范用法(Java 语言)示例。

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 连接。

java 复制代码
示例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();

上述代码示例中,明确验证服务器证书。

相关推荐
鹿鸣天涯13 分钟前
《红蓝攻防:构建实战化网络安全防御体系》
安全·web安全
NE_STOP19 分钟前
SpringBoot--如何整体读取多个配置属性及其相关操作
java·spring
egoist202325 分钟前
【Linux仓库】虚拟地址空间【进程·陆】
linux·运维·服务器·操作系统·进程·虚拟地址空间·fork
apihz41 分钟前
通用图片搜索-搜狗源免费API接口使用指南
android·java·python·php·音视频
云和数据.ChenGuang1 小时前
自动化运维工具jenkins问题
运维·自动化·jenkins·运维面试题·运维试题
风象南1 小时前
基于 SpringBoot 的 REST API 与 RPC 调用的统一封装
java·spring boot·后端
小嘚1 小时前
谷粒商城高级篇
运维·jenkins
素雪风华1 小时前
Jenkins+Gitee+Docker容器化部署
java·docker·gitee·jenkins·springboot·持续部署
妫以明1 小时前
特辑:Ubuntu,前世今生
linux·运维·ubuntu
kfepiza1 小时前
Linux的NetworkManager的nmcli配置网桥(bridge) 笔记250712
linux·运维·网络·笔记·tcp/ip·ip·tcp