硬编码发件人电子邮件地址能否避免昨天公布的PHPMailer漏洞?

3
我要翻译的内容如下:

我所提到的公告发布在以下网址: http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html

我曾在许多网站上使用类似于这样的代码:

$mail = new PHPMailer(true);
$mail->SetFrom('info@mysite.com', 'My Site');
$mail->AddReplyTo( $contact_email, "$contact_name" );
$mail->Subject = $subject;
$mail->AltBody = $mail_text;
$mail->MsgHTML($mail_html);
$result = $mail->Send();

我使用硬编码的发件地址,那么我是否安全免于漏洞?我需要担心用户输入的回复地址吗?尽管我使用 filter_var 进行验证,但如果我理解正确,发件地址可以通过验证并仍然注入代码,因为在电子邮件地址中技术上允许包含空格。


看起来对我来说你是安全的,尽管在这个领域我绝不是专家... - Gerrit0
无论给定的邮件程序存在什么安全问题,您都不应该*允许任何人设置电子邮件中的“发件人”地址。这是一个可交付性问题,因为正确实施的SPF和DMARC策略应该排除第三方MTA代表他们发送邮件的可能性。 - Sammitch
1个回答

1

是的,你很安全。

正如Sammitch所说,你永远不应该使用用户提供的发件地址,因为这将是伪造的,你会失败SPF检查。这在PHPMailer文档和许多SO答案中都有提到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接