这是一个通用的社区Wiki问题,用于解决所有非特定的垃圾邮件预防问题。

如果您的问题作为该问题的重复而被关闭,并且您认为此处提供的信息不能提供足够的信息,答案,请在Pro Webmasters Meta上进行讨论。


出于此问题的目的,垃圾邮件将包括:


任何自动发布的帖子
手动发布的内容,包括指向垃圾邮件发送者网站的链接
手动发布的内容,包括访问垃圾邮件发送者网站的说明


#1 楼

以下列表是按相对容易实现,维护成本和预防垃圾邮件的有效性进行组织的:

禁用所有用户生成的内容

这是一种焦土解决方案,不利于站点周围用户社区的增长,但是,这也可以确保节省您处理垃圾邮件或垃圾邮件预防的时间和精力。没有可以保证防止所有垃圾邮件(或其他有害内容)出现的解决方案,但是,如果您还为网站的访问者提供了将内容标记为垃圾邮件的选项,那么可以阻止大多数垃圾邮件发送者的解决方案就足够了。

外包用户生成的内容管理

像Disqus这样的服务允许网站管理员将用户生成的评论的筛选,存储和发布外包。 (注意:使用第三方服务需要额外的配置,以确保评论将被搜索引擎索引)。

CAPTCHA

根据维基百科,CAPTCHA表示“完全自动化”公开图灵测试告诉计算机和人类分开”。任何旨在防止计算机发布内容的自动化测试都是CAPTCHA:包括强制用户从图像中读取字母,数字和单词,进行简单的单词拼图或数学问题,或者以其他方式“证明”他们是人。 />
CAPTCHA的缺点是


大多数形式的CAPTCHA给用户带来一定程度的烦恼。
它们不是100%保护的。请注意,如果有能力的程序员决定为该问题投入足够的时间和精力,则许多测试都可以由计算机完成。

问题与答案验证码

小型网站最有效的验证码是问答。问答验证码是网站要求用户回答的问题。问题是访问该网站的任何人都知道,但是计算机程序不知道。有关seo的网站的示例问题是“ SEO代表什么”。该问题对于该站点的普通读者来说很容易回答,但是任何计算机程序都无法做到。 ,因为它们经常使用,并且生成垃圾邮件的人会对其进行编程,以正确回答此类问题。 ,并且q&a验证码将不再有效。

隐藏字段

如果您有表格,并且不希望垃圾邮件发送者能够使用它,阻止它们的好方法是使用隐藏字段。这些设置非常简单:将多余的字段添加到表单中,通过CSS(或JavaScript)将其隐藏,然后停止所有试图在该字段中输入值的操作。普通用户将无法看到该字段,并且会忽略该字段,因为该字段对他们而言是隐藏的,但是垃圾邮件发送者使用的计算机程序将尝试在该字段中输入值,因为他们不处理CSS或JavaScript。为了击败加载CSS或Javascript的垃圾广告,您可以向表单添加一个附加字段,并要求将其保留为空。任何人类访客都会将其留空,您可以轻松阻止将数据添加到现场的机器人。不要忘记这样的事实,这可能会使站点看起来不专业。

交通和内容分析

垃圾邮件发送者拥有数量有限的网络和计算机(从它们开始使用,直到它们不再起作用为止)。流量分析解决方案从大量主机中收集数据,以确定帖子是否包含已知的垃圾邮件内容,还是来自已知的垃圾邮件发送者的主机或网络。

有多种第三方验证码和流量分析免费(或廉价)使用的解决方案,并且大多数开源内容管理软件都包括用于使用Akismet和reCAPTCHA等服务的集成模块。

垃圾邮件中常用的阻止词

如果您发现网站上的垃圾邮件通常包含合法用户不会(或不会)使用的单词(例如“到您网站的免费链接”),那么阻止用户发布这些单词是一种有效的解决方案。如果您担心用户在其帖子中合理使用了这些单词而在您的网站上发布时遇到问题,则可以设置过滤器,以使其忽略来自已建立用户的帖子。 >
垃圾邮件发送者倾向于将注意力集中在允许其发布搜索引擎将跟随的链接的站点上(从而提高他们所宣传的站点的搜索排名)。

您可以减少站点的数量通过将rel="nofollow"添加到用户生成的内容中包含的任何链接来吸引垃圾邮件制造者,但是,这种方法可能不起作用,因为大多数垃圾邮件都是自动化的,并且垃圾邮件发送者无法知道站点是否使用rel="nofollow"链接。

由用户进行审核

任何人都可以发布内容,但是,一旦内容显示在网站上,也可以将其标记为垃圾邮件并删除(此选项仅在访问者认为实际可行时有效)垃圾邮件内容相对不常见:如果允许垃圾邮件超过有用的评论,则大多数访问者会不必标记垃圾邮件)。

游戏化

游戏化是激励用户举报垃圾邮件的好方法。考虑向您的站点添加“标志权重”功能:垃圾邮件用户报告的次数越多,他们获得的积分就越多。这将使查找垃圾邮件变得更加有趣,并为举报垃圾邮件的人吹牛。反过来,这会鼓励用户举报垃圾邮件。

管理员进行审核

人类必须查看发布在网站上的每一项内容,而在此之前,不会阻止垃圾邮件的发布,但确实可以防止向网站的访问者显示垃圾邮件(从而降低了网站对于垃圾邮件发送者的价值)。

用户注册

用户注册是对CAPTCHA的一种改进,因为用户仅被允许证明自己是人类一次,然后才允许在其便利位置发表评论-从技术上讲,这不是垃圾邮件预防的另一种形式,尽管它确实消除了由特定用户或一组用户(由用户名,电子邮件,IP地址或其他标识因素标识)更易于实施。

适度新用户

而不是批准在每个帖子中,管理员可以查看新用户注册,以根据是否批准用户来确定是否批准该用户用户的注册是否与已识别的垃圾邮件发送者或自动发送垃圾邮件程序一致。

限制新用户功能

人类垃圾邮件发送者将无法记住,如果他们无法创建自己的帐户在帐户上自由发布垃圾邮件-要求新用户创建一定数量的帖子(如果社区有能力标记垃圾邮件)和/或等待一段时间,以取消对发布链接或多个帖子的限制。 />
向会员收取费用

如果您向会员收取费用,即使费用很小,垃圾邮件发送者也将被迫权衡会员成本与在您的站点上发布垃圾邮件的价值(并为了更容易的目标而将其传递给您的站点)。 br />仅邀请

如果仅允许已被其他用户邀请的人进行注册,则这将分别减少垃圾邮件的数量(人类通常不邀请机器人)。

以下是来自Drupal的BOTCHA项目。

HoneyPot

蜜罐陷阱的实现。其要点是将字段添加到具有特定值的表单中,然后由JS对其进行修改。垃圾邮件是任何提交的表单,其计算值与我们需要的不同。

HoneyPot2

与上面相同,但是用作计算来源而不是特定字段的值,但是来自CSS的数据。

ObscureUrl

与HoneyPot2相似:将JS构造为需要。区别在于初始值是通过GET参数传递的。

结论

大多数网站管理员会发现上面列出的解决方案混合在一起(不允许的情况除外)用户生成的内容)最适合其网站,并且必须实施至少一种解决方案以防止自动垃圾邮件阻塞访问者的讨论。

评论


通过响应+1!我要补充一点,您可以为报告垃圾邮件的用户实施某种类型的奖励系统,作为“按用户审核”方法的一部分。在我现在构建的应用程序中,成功举报垃圾邮件的用户将获得“垃圾邮件杀手点”,就像在其个人资料上显示的吹牛权利。另外,他们可以在网站上花费诸如货币之类的这些点,从而在个人资料搜索中获得更高的列表结果。当然,这打开了滥用的可能性,因此,我必须想出某种方法来应对这种形式的垃圾邮件。

– JakeRow123
2012年2月4日17:49



@ JakeRow123我添加了关于游戏化的部分:随时对其进行编辑并添加您的想法。

–user6901
2012年2月4日在18:29

#2 楼

我们最近通过一个非常简单的实施方式从“与我们联系”表单中消除了垃圾邮件。我们在HTML表单中添加了一个标记为“ URL:”的输入,并使实际用户看不到它。然后,在表单处理器中,我们检查它是否具有值并采取相应的措施。他们输入了一些垃圾网站的URL。我们的脚本看到了这一点并丢弃了注释(实际上,我们正在回收这些碎片,因为我们正试图成为一个绿色环保的公司)。有一阵子,我们仍会将有问题的评论存储在数据库表中以供审核,但会拒绝将结果通过电子邮件发送给任何地方。这就是我们知道它起作用的方式。

通过这种简单的方法,我们每天从大约30多个垃圾邮件“联系我们”邮件中删除邮件到ZERO。

无论您选择什么,都祝您好运!

评论


在输入
中,我们包括:

将此字段留空:

在处理脚本中,我们具有:if (isset($ _ SESSION ['url'])&& $ _SESSION ['url'] ==''){mail($ to,$ subject,$ body,$ headers); }

– WebDevKev
2012年3月19日在16:24



#3 楼

我有一个论坛,在这里我临时启用匿名帖子。我不想使用验证码,因为我经常是我自己,很难阅读它们,这会阻止人们发表评论。为了帮助防止垃圾邮件,我使用Akismet捕获传入的邮件。 Akismet不是防弹产品,但是它确实使我的生活变得更加轻松。

但是您必须要意识到误报。因此,我要做的就是在我的post对象上创建一个“垃圾邮件属性”,并将其设置为Akismet的返回值。如果某个帖子被标记为垃圾邮件,我会给自己和电子邮件,然后我可以决定是否为垃圾邮件。

评论


这是一个广受欢迎的社区Wiki问题与解答-有关垃圾邮件预防的一般信息的主要重点,用于解决重复的问题。欢迎您将自己的建议合并到列表中。

– Danlefree
2012年2月4日23:49



+1 akismet似乎做得相当不错,请不要全神贯注,somtimes会阻止合法评论,但99%的时间是正确的

–山姆
2012年5月28日在18:02

#4 楼

请访问MediaWiki。搜索扩展名:审核该扩展名将帮助您防止在您控制的网站上出现垃圾邮件。
我已经多次使用此MediaWiki扩展名。而且它阻止了机器人创建垃圾邮件文章。