我记得一个网站因滥用而关闭,我想知道机器人是否参与其中。如果该机器人将某些内容发布到我的网站上,那么我可以采取哪些措施来应对它?我当时想设置一些cookie,并通过JavaScript +时间戳和符号来更改cookie(因此昨天的cookie不能在今天和下周使用)。

我相信大多数人/机器人都会只是使用另一个网站,而不是在其漫游器中启用JavaScript。

我还能做什么?我正在考虑每日的POST限制,以及那些只是随机发布垃圾邮件的普通机器人的蜜罐。

#1 楼

您可以做几件事情,包括:


放入只有机器人才能看到的假字段。然后,如果该字段与表单的其余部分一起提交,则可以忽略它(并根据需要禁止它们)。您还可以诱捕跟随隐藏链接的恶意机器人。
使用诸如reCAPTCHA之类的CAPTCHA
使用要求用户回答5 + 3等问题的字段。任何人都可以回答,但bot不知道该怎么办,因为它会根据字段名称自动填充字段。因此该字段将不正确或会丢失,在这种情况下,提交将被拒绝。
使用令牌并将其放入会话中,并将其添加到表单中。如果令牌未与表单一起提交或不匹配,则它将自动执行并可以忽略。
请查找来自同一IP地址的重复提交。如果您的表单不会收到太多请求,但是突然有可能它被机器人击中了,您应该考虑暂时阻止IP地址。
使用Askimet。识别垃圾邮件非常有用。


评论


+1-并且,理想情况下,您将以用户友好的方式实现上述建议的组合(例如,如果用户禁用了Javascript,因此未通过基于Javascript的身份验证,请向用户提供CAPTCHA)

– Danlefree
2010-10-5 18:51

#2 楼

John Conde概述了许多很好的方法。选择反漫游器/反垃圾邮件技术的问题在于平衡有效性和便利性。每次要发表评论或消息时都必须填写CAPTCHA确实很不方便,但是如果您仅在注册时需要CAPTCHA,则有时并不能阻止垃圾邮件发送者。

一些被动技术是很好的选择,因为它们不需要任何人为操作。问题是,机器人越来越复杂,如果机器人可以解决验证码,那么他们肯定可以处理JS和CSS。因此,您需要发挥一些独创性,例如使用不太明显的CSS隐藏您的bot-trap字段。

但是基于您的问题,我想您可能意识到这就是创建一个防僵尸网站,但仅仅是为了创建足够的威慑力,使僵尸用户可以简单地选择其他目标。因此,此处所需的内容因站点而异,并且可能需要进行一些试验和错误测试。我将首先尝试使用干扰最小的技术。

最后,可以对您的网站进行垃圾邮件处理的另一种方法是使用对等审核来删除所有由bot提交的评论或手动提交的垃圾邮件。

评论


你能解释一下同伴节制的想法吗?这是否涉及普通用户获得主持人权限还是我该如何想象?

– 0xC0000022L
2011年6月25日16:19

@STATUS_ACCESS_DENIED:抱歉,您的回复很晚,但是同级审核基本上类似于digg,slashdot,stackexchange等,用户可以通过提供某种形式的正面或负面反馈来审核网站上的内容。因此,您可以使系统自动化,以便当足够多的用户对某条内容给出负面反馈时,该系统会自动隐藏或标记为要查看。在StackExchange之类的网站上,用户还可以将评论/答案标记为垃圾邮件,以引起管理员的注意。这减少了付费管理员必须要做的工作。

–Lèsemajesté
2011-09-23 20:32

谢谢。当然,这仅适用于高流量的站点,在这些站点上可能会困扰足够的用户以提供反馈;)

– 0xC0000022L
2011-09-28 8:03

#3 楼

正如John Conde在他的#1中提到的那样,您也提到过,蜜罐在大多数情况下和大多数网站上都可以很好地工作。如果它是由机器人完成的,则也可以执行John提到的其他方法之一。但老实说,如果您的网站访问量较低或访问量中等,这应该可以解决问题。

示例,我的最爱之一:

<form action="/process-form">
<input name="email" placeholder="Enter Your Email">
<input name="email_address" placeholder="Enter Your Email" style="display:none;">
<input type="submit" value="Submit"></form>


现在,当提交表单后,极高百分比的漫游器会同时填写“ email”和“ email_address”,而人类只会填写他们看到的“ email”而不是“ email_address”。因此,在您的“ /流程形式”代码中,您只需检查email_address是否为空(不为空)即可进行验证。

简单有效。

#4 楼

我曾经有一个Word Press体育网站,后来我让网站建设者在其中添加了一个注释部分(使用其他程序)。
我发现很难保证只有一种方法可以保留机器人程序和在评论部分之外的人为垃圾邮件和广告:
取消评论部分。换句话说,有一个电子邮件地址,该电子邮件地址当然会吸引很多垃圾邮件和广告本身,并且让想发表评论的读者通过电子邮件将您的评论发送给您。然后,您可以选择真实的评论,并在其他网站页面上自己输入评论。
或者,如果您真的想在发送垃圾邮件的程序上加倍麻烦,可以要求人们使用“美国邮件”( !),并且必须获得信封和邮票以将其评论邮寄给您。
很多工作,但是替代方法是……我所知道的没有替代方法。 :)

评论


那Akismet呢?

–史蒂夫
20年11月1日在21:05

以我使用验证码和隐藏的蜜罐字段的经验,可以消除99.9%的垃圾邮件,同时将我的电子邮件地址放在网页上可以保证它可以处理大量垃圾邮件。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
20年11月2日,10:06