【问题标题】:How to stop bots and spams from submitting comments?如何阻止机器人和垃圾邮件提交评论?
【发布时间】:2012-10-20 22:48:44
【问题描述】:

目前

  1. 我正在使用验证码图片
  2. 我创建了文本字段并使用 javascript 将其隐藏。我希望它的值在服务器端为空,因为机器人应该填写表单上的所有字段。如果 value 不为空,则不会处理评论。
  3. 我还使用时间戳来检查提交评论所用的时间。我想如果评论是在 15 秒内提交的,它来自机器人,所以我也停止处理评论。

但我仍然无法控制机器人提交我的 cmets 表单。 请帮忙,我现在该怎么办?

【问题讨论】:

  • 添加一个隐藏字段,名称为“用户名”之类的明显名称,如果将其填写,则表明它是机器人。
  • 他们可能不是机器人,而是人类垃圾邮件发送者。
  • 如何防止垃圾邮件发送者 Waleed Khan?
  • 人们必须在您的网站上注册吗?因为如果他们这样做了,你可以确保你接受人们,或者建立一个额外的系统,就像人们必须点击人们必须点击他们邮件中的链接一样。我有一个人必须注册的系统,只有管理员才能接受人。这样我就知道我接受谁,谁允许发帖。如果它是一个您不必注册的网站,我可以理解这很难,这使得它变得更加困难。

标签: php javascript bots


【解决方案1】:

添加带有误导性 ID/名称的隐藏字段

<input type="hidden" id="Username" name="Username" value=""/>

如果机器人出现并填写您的表单,他们很可能会填写隐藏字段,而用户不应该这样做,因此如果隐藏字段有数据,则禁止提交。

【讨论】:

    【解决方案2】:

    为什么不实现Akismet 并让他们为您处理呢?他们有一个有据可查的 API,成千上万的人依靠它来防止 Wordpress 博客上的垃圾邮件。我在我妻子的博客上使用 Akismet 大概 3 年没有看到垃圾评论了。

    【讨论】:

      【解决方案3】:

      Lyuben Todorov 提出了一个很好的解决方案来防止 BOT 垃圾邮件发送者。但是,如果您仍然有垃圾邮件并且可能是人为垃圾邮件,请使用Akismet 反垃圾邮件系统。

      【讨论】:

        【解决方案4】:
        1. 对 cme​​ts 中的所有链接使用 no-follow。这不会阻止垃圾邮件,但会消除垃圾邮件的大部分诱因。 (see here how it works)
        2. 需要用户身份验证才能发表评论。
        3. 使用非描述性表单元素(不要命名 div“评论”)。

        【讨论】:

          【解决方案5】:

          尝试创建独特的验证码来阻止任何标准机器人(但如果有人想准确地向您发送垃圾邮件,那将无法正常工作)。

          另一种方法是通过电话号码添加验证。

          【讨论】:

          • 我说的是独特的保护。它可以是“请从给定图像中选择我们的网站名称”之类的内容。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-08-12
          • 2012-06-12
          • 1970-01-01
          • 2014-10-22
          • 1970-01-01
          • 2011-10-31
          • 1970-01-01
          相关资源
          最近更新 更多