应用软件安全编程--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();

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

相关推荐
emfuture13 分钟前
龙芯2K300 PLC 在拉丝机收线系统改造中的应用:硬件选型、张力控制与国产化替代实践
java·开发语言·智能制造·plc·国产化替代
fruge14 分钟前
SSH、RDP、VNC不必各开一个客户端:Next Terminal用Web入口统一管理远程资产和会话记录
运维·前端·ssh
中屹指纹浏览器svip24 分钟前
什么是设备数字特征追踪?
运维
Source.Liu24 分钟前
【A11】服务器数据库结构笔记
服务器·数据库·笔记
企业解惑小能手-域智盾系统34 分钟前
终端安全管理软件怎么选?终端安全管理不是“装个客户端”:从底层逻辑看企业怎么选
服务器·网络·安全·域智盾软件
Dxy123931021641 分钟前
Linux 服务器 vi 命令怎么使用
linux·运维·服务器
Doker 多克42 分钟前
Spring Integration AMQP 和 Spring AMQP详解
java·后端·spring
NE_STOP1 小时前
Spring AI Alibaba -- 文生图、文生音及向量化
java
叼烟扛炮1 小时前
Linux 学习笔记(十五):进程的魔法 fork 与 僵尸孤儿
linux·运维·服务器
知行EDI1 小时前
eMudhra CA 私钥安全事件:Java 运行环境(JRE)风险评估与修复指南
java·emudhra