【问题标题】:Validation of php mail script验证php邮件脚本
【发布时间】:2014-01-06 23:54:59
【问题描述】:

所以我有这个脚本,用于我在不同域中的所有电子邮件。由于某些原因,第二次我开始在 1&1 主机帐户上使用它 - 我收到了大量的垃圾邮件! 在没有发件人的情况下阻止电子邮件的条件不起作用 - 一些垃圾邮件来自虚假垃圾邮件。

这是脚本:

<?php
$nambre = $_POST['name'];
$number = $_POST['number'];
$email = $_POST['email'];
$user_message = $_POST['message'];
$message = "<h3>From:&nbsp;".$nambre."</h1>";
$message .= "<h3>Phone:&nbsp;".$number."</h3><br/>";
$message .=$user_message;
$headers = "From: " . strip_tags($_POST['email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['email']) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail ( 'email@email.com' , 'Someone is contacting you from you website',        $message, $headers );
header("location: success.html");
?>

有什么我可以做的吗?

【问题讨论】:

  • 在您的表单中添加验证码,也许?
  • 查看蜜罐方法。
  • 另一种获取垃圾邮件的好方法是在 StackOverflow 上以纯文本形式提供您的电子邮件
  • 谁这么蠢……
  • 首先,删除第一个$message .= "&lt;h3&gt;From:&amp;nbsp;".$nambre."&lt;/h1&gt;";中的点

标签: php regex sendmail spam


【解决方案1】:

您需要验证码或其他类型的人工验证。我建议您将页面加载时间设置为表单提交。由于机器人会自动完成,因此只需几毫秒,使用 Javascript 的 Date() 对象很容易完成。

&lt;joke&gt;

或者,您可以询问机器人/人类 .1+.2 是什么,如果结果是 0.30000000000000004,那么您就有了一个机器人。

&lt;/joke&gt;

如果您正在寻找更具体的基于验证码的验证码,您可以使用reCAPTCHA

但是,我看到的另一件有趣的事情是有一个隐藏的表单域,或者有一个消息告诉用户不要填写它。如果用户填写它,你可以确信您的脚本将拒绝机器人和不知道如何阅读的人类

【讨论】:

  • 这是一个有趣的想法。
  • 使用您的服务器时间,而不是客户端时间。使用后者是自找麻烦,因为您无法控制客户端时间。
  • 如果我要在表单下添加一个带有占位符“whats 2+2”的小输入并使用 php 条件验证它会起作用吗?机器人能解决这个问题吗?
  • 我不建议使用数学,我这么说并不认真。我会使用其他方法之一
  • 机器人就是这样:机器人。它们被概括并专注于向成千上万的网站发送垃圾邮件。他们对你的没有特别的兴趣,所以在我的经验中,任何偏离规范的形式都是非常有效的。像:“什么是二加二”将几乎杀死所有来自机器人的垃圾邮件。如果您想格外小心,您可以很容易地用几个不同的问题来改变这一点,但是机器人作者并没有太大兴趣做一些定制的事情,只是为了让一封垃圾邮件进入您的收件箱。
猜你喜欢
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
相关资源
最近更新 更多