2012-01-01 104 views
3

我一直在考虑简单的方法来防止垃圾机器人向网站上的公共表单(例如联系表单)提交内容。这足以阻止机器人吗?

我知道很多网站现在会问用户一个简单的问题(例如什么是2 + 4?)。

如果您有以下情况,是否足以阻止大多数机器人?

HTML

<form action="submit.php" method="post"> 
    <input type="text" name="name" placeholder="Name" /><br /> 
    <textarea name="message" placeholder="Message"></textarea><br /> 
    <label for="test">I am a:</label> 
    <select id="test"> 
     <option value="robot" selected="selected">Robot</option> 
     <option value="human">Human</option> 
    </select> 
</form> 

PHP

<?php 
if ($_POST['test'] == 'robot') header ('Location: contact.php?err=nothuman'); 
// process form 
?> 

的想法是,机器人可能会留在所选项目的选择项。

如果有人有另一个非常简单的解决方案,我会有兴趣听到?

+0

只是让每个人都知道**我知道**有关验证码 - 我不是在谈论* *完整的垃圾邮件防护功能,更简单* *垃圾邮件保护 - 个人而言,我发现reCAPTCHA的是要多为小痛事情(例如联系表格) – 2012-01-01 21:45:20

+0

在我使用的一些简单表格中,机器人提交通常会选择第一个非默认选项。因此,由于您已预先选择了Robot,因此他们可能会选择Human。 – 2012-01-01 21:46:19

+2

尽管recaptcha还不多,但这是防止垃圾邮件的最佳方法之一。如今,机器人变得更加智能,并且可以轻松解析页面。如果您始终使用相同的图像/文本作为防止垃圾邮件的机制,则某些用户可能会将该选项一次性提供给机器人,然后可能会轻易地继续向您发送垃圾邮件。 – 2012-01-01 21:47:48

回答

5

另一种选择是使用人的照片和机器人的照片。当涉及到机器人时,图像会增加额外的难度。

+0

这是个好主意! - 对用户来说更简单... – 2012-01-01 21:43:49

+1

虽然对视觉障碍用户不太友好 - 一定要包含'alt'属性!' – 2012-01-01 21:45:27

+0

@Michael会做! – 2012-01-01 21:46:16

2

不,我不认为这足以防止机器人。你应该考虑添加Captacha或类似的东西。

Try:http://www.google.com/recaptcha 它是免费的,容易与您的网站集成。

更新(以上评论):虽然验证码是多一点,但是这是为了防止垃圾的最佳途径之一。如今,机器人变得更加智能,并且可以轻松解析页面。如果你总是有相同的图像/文本作为一种机制来防止垃圾邮件,一些用户可能曾经养活了该选项到机器人,然后它可以很容易地继续发送垃圾邮件的

2

简单的垃圾邮件保护: 添加名为'website'的输入或任何其他流行的spamers字段并使用CSS隐藏它。在服务器端检查该字段是否设置,然后是垃圾邮件发送者机器人。

+0

这实际上相当不错!...这使得很多感觉:) – 2012-01-01 21:57:31

相关问题