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

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

相关推荐
zyl837212 分钟前
Docker 使用手册
运维·docker·容器
阿部多瑞 ABU21 分钟前
AI红队攻防演化史(2023-2026):从虚拟角色到RLHF劫持——所有攻击方法全景总结与最新趋势分析
网络·人工智能·安全
古月方枘Fry22 分钟前
MGRE实验
运维·服务器
博客-小覃40 分钟前
Zabbix之华为交换机的日志记录信息操作详细教程
服务器·网络·华为·zabbix
_Aaron___1 小时前
Spring AI 接入 MCP:工具调用不是“能调就行”,关键是边界治理
java·人工智能·spring
stolentime1 小时前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
向量引擎1 小时前
从零起步,如何打造专属向量引擎 API 中转工作流?
java·服务器·前端
LJianK11 小时前
普通接口,用到getter和setter方法的地方,jackson转换
java
辰海Coding1 小时前
MiniSpring框架学习-分解 Dispatcher
java·学习·spring·架构
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第84题】【Mysql篇】第14题:为什么用 InnoDB 存储引擎的表建议用整型的自增主键?
java·开发语言·数据库·mysql·面试