【发布时间】:2019-03-14 03:58:59
【问题描述】:
我的网站遭受了注入(来自知识库系统中的搜索框)。我删除了那个 KB 系统,但有一个联系表(使用 Google Captcha),用户可以在其中输入他的姓名、电子邮件和消息,然后我使用 PHP mail() 向我发送消息。
攻击者是否有可能通过对该表单的可能攻击访问我的网站?或者最坏的情况可能只是他用它来发送垃圾邮件?
这是我在调用“main()”之前的 PHP 代码:
<?php
$fname = $_POST['contact-f-name'];
$lname = $_POST['contact-l-name'];
$email = $_POST['contact-email'];
$text = $_POST['contact-message'];
$companyname = $_POST['company-name'];
$subject = $_POST['subject'];
$address = "myemail@myemail.com";
$headers = "From: " . strip_tags($email) . "\r\n";
$headers .= "Reply-To: ". strip_tags($email) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type:text/plain; Charset=UTF-8 \r\n";
$message = ."Name: ".strip_tags($fname)." ".strip_tags($lname)."\r\n"
."Email: ".strip_tags($email)."\r\n"
."Company Name: ".strip_tags($companyname)."\r\n"
."Subject: ".strip_tags($subject)."\r\n"
."Message: ".strip_tags($text)."\r\n";
if(@mail($address, $subject, $message, $headers)) { echo "true"; }
else { echo "false"; }
exit;
?>
【问题讨论】:
-
与所有接受用户输入的 Web 表单一样,必须对输入进行清理以防止 XSS 等注入攻击