7

这并不意味着讨论,但如果这有助于防止爬虫或垃圾邮件机器人。

验证码不是用户友好的,看起来也不好看……这就是为什么我想尝试这样的事情:

<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>吗?

从技术上讲,它可以工作(如果我用一个值填充该字段)......但我不知道这样的事情是否会假装自己不会收到烦人的垃圾邮件......

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

4

3 回答 3

5

这类字段称为蜜罐字段,其想法是使用 css 隐藏它们,而不是使用隐藏字段。

是否要使用它们是您的决定,您需要进行一些研究。使用它们有一些批评,一个例子是用于辅助功能的屏幕阅读器可能会看到这些字段并阅读它们。

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

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

于 2013-05-31T09:02:30.473 回答
3

也许您可以尝试仅在 PHP 端处理机器人问题,看看这可能有助于 如何使用 php 检测搜索引擎机器人?

于 2013-05-31T08:55:50.840 回答
2

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

尝试检查奇怪的 browser-info $_SERVER['HTTP_USER_AGENT']

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

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

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

于 2013-05-31T09:07:28.587 回答