0

您如何在只有注册用户可以访问的页面上停止机器人?90% 的页面是由真实用户访问的,10% 是机器人访问的。

我不想在页面上放置验证码或验证方法,因为我知道我的用户不会喜欢这个而且他们也很懒惰。

请分享你的想法

编辑

我想让这个问题更清楚

  1. 注册页面有验证码
  2. 我的网站允许用户提交内容,换句话说就是它的 UGC 网站。垃圾邮件发送者复制其他用户的内容并将它们放在我的网站上,因此不可能通过 askimet 阻止它们。

可能的解决方案

我脑子里只有一件事。

当用户单击提交按钮时,服务器将生成一个随机数(使用 javascript),然后将其用于隐藏字段进行验证。

您认为这个解决方案实际上适用吗?

4

6 回答 6

4

我喜欢使用的一个技巧是在我的表单中添加一个隐藏的输入字段,真正的用户永远不会看到或更改,但机器人会盲目填写。

就像是

<input name="spam_stopper" value="DO NOT CHANGE THIS" style="display:none;"/>

然后,在您的表单处理代码中,确保 spam_stopper 的值为“请勿更改”。

智能机器人可能会忽略 display:none,但这不太可能——<input type="hidden">尽管很多人会忽略,所以我不会使用它......

于 2010-07-11T17:21:06.657 回答
3

鉴于您已排除验证码(这不是 100% 防弹的),您需要检查您的用户输入的内容并允许或禁止他们的帖子。

这项任务不会是一件容易的事,因此我建议您将注意力转向现成的解决方案,例如Akismet

于 2010-07-11T17:20:17.760 回答
0

由于这些机器人不遵循robots.txt,因此您始终可以使用 .htaccess 来阻止它们,但由于机器人/垃圾邮件发送者经常更改 IP,因此需要进行大量工作(需要维护阻止列表)。您还可能会阻止真正的用户。

例如,您可以查看Block Bad Bots

它可能很有用,但通常很难阻止所有这些 VS 假设是 CAPTCHA 或类似系统。

于 2010-07-11T17:22:45.447 回答
0

首先,您是否在注册时进行人工验证?这是防止网站上出现垃圾邮件的第一步。验证码非常有效,即使您不想让用户每次在网站上发布验证码时都回答验证码,让他们填写验证码以创建帐户也是完全合理的。只需要2-3秒,而且他们只需要做一次。

如果您不愿意这样做,那么只要您的网站在搜索引擎中被编入索引,您就必须忍受垃圾邮件。

于 2010-07-11T17:46:03.013 回答
0

防止未整理的垃圾邮件

于 2011-01-25T10:23:28.177 回答
0

是的,验证码不是用户友好的。您可以使用一些技术来防止垃圾邮件,而无需使用其他人已经提到的验证码:

  • 更智能的服务器端验证:这是特定于表单的,但例如在联系我们表单中,您可以过滤冗长的消息或包含大量 URL 的消息。或者,如果您希望收到一封电子邮件,您可以 ping 域。

  • 黑名单机制:通过 IP 或黑名单数据库中的短语标记垃圾邮件发送者。如果你使用 PHP,像Guard这样的简单库会很有帮助

  • 蜜罐:这已经在接受的答案中提到

  • 基于时间的保护:检查发布请求的时间是否超过 X 秒

  • 基于分数的Google reCAPTCHA v3:与之前的版本相比,此版本完全重新设计,并在后台检测垃圾邮件。

我最近写了一篇文章,你可以在那里找到更深入的内容。

于 2019-01-05T10:20:44.697 回答