0

一位客户最近收到了来自其主机的垃圾邮件警告。

我想我已经将问题指向一个旧的联系我们表格。前端的简单 html 和后端的简单 PHP 脚本。

    if ($_POST['submit'] == "Send"){

    //START SEND MAIL SCRIPT 
    $mail = $_POST['email'];
    $to = "me@gmail.com";
    $subject = "Message from Website Contact Us Form";
    $headers = "From: Contact us Form <webmaster@website.co.uk>";
    $message = "Message from Contact Us Form\n\n";
    $message .= "\nName: " . $_POST['contactname'];
    $message .= "\nEmail: " . $_POST['contactemail'];
    $message .= "\nTelephone: " . $_POST['contactphone'];
    $message .= "\n\n\nMessage:\n" . $_POST['contactmessage'];


        if(mail($to,$subject,$message,$headers)) {

                header('Location: http://www.website.co.uk/contact-us/?action=success');

        }else{

                header('Location: http://www.webisite.co.uk/contact-us/?action=fail');                          

        }//END IF MAIL

}//END SCRIPT

我知道修复它的补救措施,例如正确清理帖子变量、使用验证码、使用隐藏的“蜜罐”空白字段、js 技巧等(我也喜欢这个脚本的外观http://www.alt-php- faq.com/local/115/ )

但是为了帮助我理解发生了什么,我想知道这个脚本是如何被操纵的。一个向其发布变量的外国脚本,但他们如何向除“me@gmail.com”之外的任何人发送电子邮件,或者如果他们以某种方式强制抄送/密送字段,为什么我也没有收到所有垃圾邮件?

谢谢

4

2 回答 2

1

您没有对发布数据进行任何转义。这意味着这种形式很容易受到注入攻击

我不能告诉你他们是怎么做到的,但可能就是这样。

于 2011-12-30T14:17:34.977 回答
1

这样的线路$message .= "\nName: " . $_POST['contactname'];可能很危险。如果$_POST['contactname']='MegaSteve4 \r\nCc: email1@mail.com, email2@mail.com';设置,2 次使用将收到垃圾邮件。

仔细看。它附加了更多的标题。在这种情况下抄送。我不确定抄送是否是原始电子邮件标题。但我希望你能明白。

于 2011-12-30T14:30:33.877 回答