代码之家  ›  专栏  ›  技术社区  ›  Maximus

防止垃圾邮件

  •  0
  • Maximus  · 技术社区  · 15 年前

    如何在一个只有注册用户才能访问的页面上停止机器人程序?90%的页面被真实用户访问,10%是bot。

    我不想把验证码或验证方法的网页上,因为我知道,我的用户不会喜欢这样,他们也懒惰。

    请分享你的想法

    编辑

    我想把这个问题说清楚一点

    1. 我的网站允许用户提交的内容,换句话说,它的教资会网站。垃圾邮件发送者复制其他用户的内容,并把他们放在我的网站上,所以阻止他们通过askimet是不可能的。

    可能的解决方案

    我只想到一件事。

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

    6 回复  |  直到 15 年前
        1
  •  4
  •   daryn    15 年前

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

    像这样的

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

    然后,在表单处理代码中,确保spam\u stopper的值为“don NOT CHANGE THIS”。

    智能机器人可以忽略display:none,但这不太可能——很多人确实忽略了 <input type="hidden">

        2
  •  3
  •   Anax    15 年前

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

        3
  •  0
  •   AlexV    15 年前

    因为这些机器人不会跟着 robots.txt ,您总是可以使用.htaccess阻止它们,但是由于bot/spammers经常更改ip,所以这需要大量的工作(需要维护阻止列表)。你也有可能阻止真正的用户。

    你可以看到 Block Bad Bots 举个例子。

    它可能是有用的,但它往往是太多的工作来阻止所有与让我们说一个验证码或类似的系统。

        4
  •  0
  •   Lèse majesté    15 年前

    首先,你在注册时是否做过人体验证?这是你应该采取的第一步,以防止垃圾邮件在你的网站上。验证码是非常有效的,即使你不想让用户回答验证码每次他们张贴在网站上,让他们填写一个创建帐户是完全合理的。只需要2-3秒,他们只需要做一次。

        5
  •  0
  •   Community CDub    8 年前

    Prevent 不整理垃圾邮件

        6
  •  0
  •   Ehsan    6 年前

    是的,CAPTCHA不是用户友好的。您可以使用一些技术来防止垃圾邮件,而不必使用CAPTCHA,其中一些技术已经被其他人提到:

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

    • 蜜罐:这已经在公认的答案中提到了

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

    • Google reCAPTCHA v3 :与上一个版本相比,此版本完全重新设计,可检测幕后的垃圾邮件。

    我写了一封信 post 最近,你可以在那里找到更深入的。