【问题标题】:Javascript spam prevention based on comment content基于评论内容的Javascript垃圾邮件预防
【发布时间】:2010-08-24 00:34:51
【问题描述】:

请帮助我。最近我收到了很多没有以任何方式解决发布内容的 cmets,而只是表示评论的基数。

我想在这些 cmets 发布之前阻止它们,方法是在提交之前使用 Javascript 函数检查它们是否是垃圾邮件。

这是我想出的。

var postHTMLContent = "...";

function isSpamComment(comment, index)
{
    if (index == 0 && comment == 'first')
       return true;
    else
       return false;
}

它可以工作(没有误报),但可以让许多其他类似不相关的 cmets 通过。如果他们只是拼错了“first”或将评论的基数弄错了,它甚至会失败。

是否有更通用的功能可以阻止通过的东西?请不要在服务器端,也不要正则表达式。

【问题讨论】:

  • 第一! ...一般来说,一条评论不会是一个词长——如果你测试所有一个词的 cmets 和常用的基数术语会怎样?您还可以在测试列表中包含常见的拼写错误。

标签: javascript spam-prevention


【解决方案1】:

垃圾邮件发送者会绕过您的 JavaScript 尝试阻止它们。

您想延迟 cmets 以允许审核或通过一些健全性测试服务器端运行它。

如果可以,请像 StackOverflow 那样做,让社区本身来帮助保护系统。如果用户发布了令人反感或愚蠢的内容,请让其他人将其标记为审核,或者如果他们是“权力”/“信任”用户,则将其删除。

【讨论】:

    【解决方案2】:

    对于这个问题,JavaScript 解决方案确实不是一个很好的答案。如果有人想发布他们的“第一条”评论,他们可以禁用 javascript,如果您没有任何服务器端验证,垃圾邮件仍会到达该站点。使用 javascript 的第二个不好的原因是用户可以看到您认为是垃圾邮件的词,然后自行感知它们(f!rst...等)。话虽这么说,如果有许多不同的方法可以进行更多启发式垃圾邮件检测,我将在下面详细说明:

    黑名单术语 - 有点像你的例子,如果你这样做:

    if(comment.indexOf(' bad phrase here ') !== false) { return true; }
    

    您可以确定评论是否包含一个术语...不仅仅是等于整个内容。老实说,no regex 子句在内容检测方面确实对您造成了伤害,但这至少应该让您了解用户键入的基本短语。这不是万无一失的,因为您最终可能会遇到“经典”之类的词误报的情况:)

    评论长度 - 考虑到任何少于 50 个字符左右的内容都可能没有建设性......这不会阻止人们“首先!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!......你明白了”打破你的过滤器。一定要修剪用户输入周围的空白区域,以帮助确保它更安全。

    这些只是一些基本的想法,但老实说,在客户端对此进行修复是没有意义的。巨魔就是巨魔,如果服务器不愿意支持客户端的规则,他们总是会试图绕过你的脚本。

    话虽如此。评论批准/审核是确保您想要的内容出现在您的网站上的唯一可靠方法,老实说,在尝试参与在线对话时,这并不是一个很好的用户体验。它真的应该只在需要保护人们免受内容影响的环境中使用(例如,如果您正在开发一些面向儿童的产品页面)。

    【讨论】:

      【解决方案3】:

      您可以不断添加新的“被禁止的 cmets”,但您的用户总会避开它们。

      如果您想让它远离垃圾邮件,您有两种选择,其中只有第二种可行:

      • 编写识别“垃圾邮件”cmets 的人工智能
      • 在有人检查并确认它们不是垃圾邮件之前,不要显示这些 cmets

      这当然是假设垃圾邮件或噪音 cmets 来自您的人类读者。如果您想阻止自动垃圾邮件,那么技术上是可行的,请参阅CAPTCHAs。

      【讨论】:

        猜你喜欢
        • 2010-10-29
        • 1970-01-01
        • 2012-01-15
        • 1970-01-01
        • 2012-10-16
        • 1970-01-01
        • 2013-01-31
        • 2011-03-03
        • 2014-04-20
        相关资源
        最近更新 更多