我遇到了here提到的同样问题,并且允许不安全的连接解决了它,而没有其他任何问题。如果我继续允许这些不安全的连接,你能告诉我可能面临的安全问题吗?
答案 0 :(得分:3)
我建议这个链接:
PhpMailer not sending mails - TLS error?
如果您有不安全的连接问题,请添加以下行:
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
它阻止证明检查等。
答案 1 :(得分:2)
TLS履行两个角色:验证您要连接的人员,以及保护传输中的数据。禁用验证会丢弃前者,但数据在传输过程中仍然采用与验证证书完全相同的方式加密,因此它仍然比没有加密要好得多。
禁用验证最明显的问题是您无法检测到对连接的拦截。 ISP很常见的是防火墙配置将出站SMTP连接重定向到他们自己的邮件服务器而不告诉您。如果您没有验证证书,您的脚本将不会注意到它已连接到错误的服务器,并将继续并提交您的凭据(这可能会失败,因为它是错误的服务器) - 但您刚刚提交了您的ID和中间人的密码,你无法分辨是你的ISP或其他人拦截你的连接。