我一直在阅读php邮件注入和可能的安全风险。我决定通过一个函数控制大部分内容,只需传入来自电子邮件和联系人的消息。
只是想知道这是多么安全,是否会阻止任何注射?
//contact form
function sendContactForm($contactEmail, $contactMessage) {
$to = "mysite@mysite.com";
$from = "mysite@mysite.com";
$replyTo = filter_var($contactEmail, FILTER_VALIDATE_EMAIL);
$subject = "Contact Form Email";
$message = $contactMessage;
$headers = "From: " . $from . "\r\n";
$headers = "Reply-To:" . $replyTo . "\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($to, $subject, $message, $headers);
}
答案 0 :(得分:1)
它并不安全:用户可以轻松地在$contactMessage
中注入一些代码。
我的建议是使用htmlentities()
来转换实体中的字符(如果可能)。
您还可以使用strip_tags()
,它返回不带HTML标记的字符串。