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

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

相关推荐
Decay__1 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
测试界的小码农1 小时前
【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】
linux·运维·服务器
afumu1 小时前
Go 写一个只监听 127.0.0.1 的控制服务:鉴权、白名单、危险命令拦截
后端·安全·go
文丑颜不良啊2 小时前
LeetCode2761~2780题目解析
java·leetcode
艺杯羹2 小时前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
陈希1232 小时前
负载均衡与高可用:LVS、HAProxy、Keepalived 实战
运维·负载均衡·lvs
IT枫斗者枫哥2 小时前
子线程断言失败,JUnit 为什么还显示通过?
java·后端
女神下凡4 小时前
芯参谋(107):杰理AC_中科蓝讯_开发指南
linux·服务器·网络·单片机·嵌入式硬件
落羽的落羽4 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
考虑考虑5 小时前
JDK27中的Set.ofLazy
java·后端·java ee