有没有办法100%防止PHP邮件脚本被滥用?

时间:2012-01-12 01:52:39

标签: php ajax email spam

我搜索了SO并找到了几个good ideas,但没有任何100%解决了我遇到的这个php邮件问题。

注意:当我从服务器删除此文件时,垃圾邮件将停止。 Captcha也不是一个真正的选择,这是一个Ajax调用,它需要很快。我不是百分之百确定垃圾邮件发送者是如何做到的,但任何帮助都会很受欢迎。

以下是添加到表单中的HTML:

<input name="spam_stopper" value="DO NOT CHANGE THIS VALUE" style="display:none;"/>

以下是我在mail.php文件顶部添加的未阻止垃圾邮件的附加代码:

if ($_POST['spam_stopper'] != 'DO NOT CHANGE THIS VALUE') {
        echo '<h3>Incorrect use of this form!</h3>';
        exit;

}


if(!strpos($_SERVER['HTTP_REFERER'],'my-sample-domain-name.com'))
{
        echo '<h3>Incorrect use of this form!</h3>';
        exit;

}
if($_SERVER['REQUEST_METHOD'] != "POST"){
   echo("Unauthorized attempt to access page.");
   exit;
}

1 个答案:

答案 0 :(得分:1)

您允许通过POST提交自己的表单进行访问。所以,如果我继续在你自己的网站上使用JavaScript提交它,比如使用Firebug,那么阻止我的是什么?

每个发送邮件请求都应附带一个只有一次有效的令牌,以确保您的表单不会被提交多次,即使是在您自己的网站上也是如此。