在没有验证码的情况下优化垃圾邮件

时间:2013-05-31 08:52:16

标签: php html forms html-form

这不是一个讨论,但如果这有助于反对抓取工具或垃圾邮件机器人。

Captchas不是用户友好的,看起来不太好......这就是为什么我想要尝试这样的事情:

<form><input type="text" name="name"> <input type="hidden" value="" name="surname" /></form>

并检查输入类型是否已隐藏(以检查其机器人)是否已填充(submit.php)。

if (!empty($_POST['surname'])){
    $error2 = "You are a Bot.";
}

我的问题是:

是否可行或者爬虫或机器人会忽略隐藏的输入类型?

或者围绕它包裹一个<div style="display:none;"></div>会更好吗?

技术上它起作用(如果我用一个值填充该字段)...但我不知道这样的事情是否会假装自己变得讨厌垃圾邮件..

感谢阅读/其他可能是用户友好的解决方案。

3 个答案:

答案 0 :(得分:4)

这些字段称为honeypot fields,其目的是使用css隐藏它们,而不是使用隐藏字段。

如果你想使用它们是你的决定,你需要做一些研究。使用它们有一些批评,例如,用于辅助功能的屏幕阅读器可能会看到这些字段并阅读它们。

您还可以选中使用简单复选框的此选项:http://uxmovement.com/forms/captchas-vs-spambots-why-the-checkbox-captcha-wins/

注意:我认为只有在您确定存在垃圾邮件问题或者您已经遇到此问题时才应添加验证码,而不是从一开始就知道您是否真的需要它。

答案 1 :(得分:2)

也许你可以尝试在PHP方面处理机器人问题,看看它可能会有所帮助 how to detect search engine bots with php?

答案 2 :(得分:1)

添加空的CSS隐藏字段并检查输入是其中一个选项。

尝试检查奇怪的浏览器信息$_SERVER['HTTP_USER_AGENT']

允许最小的打开字段,依赖单选按钮,下拉选择器,检查字段......

不允许发布HTML / URL地址....

问题是,垃圾邮件发送者适应,你也应该适应。