我不断从网络表单接收垃圾邮件

时间:2013-01-26 18:36:27

标签: php javascript spam

我不断收到联系我们页面的垃圾邮件。

在所有垃圾邮件中都没有正确的电子邮件,电子邮件地址就像这样:阿姆斯特丹

我已在联系我们表单上应用了javascript验证,因此无法传递无效的电子邮件地址。

黑客是否将数据直接发布到我的php文件中?

作为我的表单操作HTMLFORMresponseFeedback.php到此文件。

我听说我们可以通过curl将数据发布到任何phpfile。

我需要应用什么安全措施来禁用此方法?

这种情况会起作用吗?

if($_SERVER['HTTP_REFRER']=='http://abc.com/contact_us') {

} else {
    // redirect
};

2 个答案:

答案 0 :(得分:3)

您使用过JavaScript是否无法传递无效的电子邮件?对不起,这不是真的。大多数垃圾邮件机器人没有JS引擎,因此您的验证无关紧要。

您应该考虑实施以下内容:

  • 服务器端电子邮件地址格式验证
  • 查看CAPTCHA选项,例如reCAPTCHA,或验证发件人的其他方法实际上是人。
  • Akismet,是识别垃圾邮件客户端的绝佳方式。

答案 1 :(得分:2)

你可以做几件事,包括:

1)放一个只有机器人会看到的假场。然后,如果该字段与表单的其余部分一起提交,则可以忽略它(如果需要,可以禁止它们)。您还可以trap bad bots who follow a hidden link

2)使用像reCAPTCHA

这样的CAPATCHA

3)使用一个字段,要求用户回答类似5 + 3的问题。任何人都可以回答它,但机器人不知道该怎么做,因为它是根据字段名自动填充字段。因此该字段将不正确或丢失,在这种情况下提交将被拒绝。

4)使用令牌并将其放入会话中并将其添加到表单中。如果令牌未随表单一起提交或与之不匹配,则会自动进行,并且可以忽略。

5)查找来自同一IP地址的重复提交。如果您的表单不应该收到太多请求,但突然之间它可能被机器人击中,您应该考虑暂时阻止IP地址。

6)使用Askimet。它非常适合识别垃圾邮件。