这是一个通用的社区Wiki问题,旨在解决所有非特定的垃圾邮件预防问题。
如果您的问题作为该问题的重复而被关闭,并且您认为此处提供的信息不能提供足够的答案,请在Pro Webmasters Meta上进行讨论。
出于此问题的目的,垃圾邮件将包括:
- 任何自动发布
- 手动发布的内容,包括指向垃圾邮件发送者网站的链接
- 手动张贴的内容,其中包括指令访问一个垃圾邮件发送者的网站
这是一个通用的社区Wiki问题,旨在解决所有非特定的垃圾邮件预防问题。
如果您的问题作为该问题的重复而被关闭,并且您认为此处提供的信息不能提供足够的答案,请在Pro Webmasters Meta上进行讨论。
出于此问题的目的,垃圾邮件将包括:
Answers:
以下列表是按相对容易实现,维护成本以及预防垃圾邮件的有效性进行组织的:
这是一种焦土解决方案,它不利于站点周围用户社区的增长,但是,它也可以确保节省您在处理垃圾邮件或防止垃圾邮件方面的时间和精力。
没有禁用用户生成的内容的方法,没有可以保证防止所有垃圾邮件(或其他不需要的内容)出现的解决方案,但是,如果您还为网站的访问者提供了标记内容的选项,那么可以阻止大多数垃圾邮件发送者的解决方案就足够了。作为垃圾邮件。
像Disqus这样的服务使网站管理员可以外包用户生成的评论的筛选,存储和发布。(注意:使用第三方服务需要额外的配置,以确保评论将被搜索引擎索引)
根据Wikipedia的说法,CAPTCHA代表“完全自动化的公共Turing测试,以区分计算机和人类”。任何旨在防止计算机发布内容的自动化测试都是CAPTCHA:包括强制用户从图像中读取字母,数字和单词,进行简单的单词拼图或数学问题,或以其他方式“证明”他们是人。
验证码的缺点是
大多数形式的验证码为用户带来一定程度的烦恼。
它们不是100%保护的。请注意,如果有能力的程序员决定为该问题投入足够的时间和精力,则许多测试可以由计算机完成。
小型网站最有效的验证码是问答。问答验证码是网站要求用户回答的问题。问题是访问该网站的任何人都知道,但是计算机程序不知道。有关seo的网站的示例问题是“ SEO代表什么”。该问题对于该站点的普通读者来说很容易回答,但是任何计算机程序都无法做到。
注意:诸如“ what is 1 + 1”之类的问题无法很好地解决,因为它们经常被使用,并且构建垃圾邮件记录器的人员会对其进行编程以正确回答此类问题。
但是,如果您的网站访问量很大,垃圾邮件发送者将为其机器人编程,使其自动回答这些问题,并且问答CAPTCHA将不再有效。
如果您有表单,并且不希望垃圾邮件发送者能够使用它,则阻止它们的一种好方法是使用隐藏字段。这些设置非常简单:将多余的字段添加到表单中,通过CSS(或JavaScript)将其隐藏,然后停止所有试图在该字段中输入值的操作。普通用户将无法看到该字段,并且会忽略该字段,因为该字段对他们而言是隐藏的,但是垃圾邮件发送者使用的计算机程序将尝试在该字段中输入值,因为他们不处理CSS或JavaScript。为了击败加载CSS或Javascript的垃圾广告,您可以向表单添加一个附加字段,并要求将其保留为空。任何人类访客都会将其留空,并且您可以轻松阻止将数据添加到现场的机器人。不要忘记这样的事实,这可能会使站点看起来不专业。
垃圾邮件发送者拥有数量有限的网络和计算机可供发布(它们通常会在无法使用之前使用)。流量分析解决方案从大量主机中收集数据,以确定帖子是否包含已知的垃圾邮件内容,还是来自已知的垃圾邮件发送者的主机或网络。
有多种免费(或廉价)使用的第三方CAPTCHA和流量分析解决方案,大多数开源内容管理软件都包括用于使用Akismet和reCAPTCHA等服务的集成模块。
如果您发现网站上的垃圾邮件通常包含合法用户不会(或不会)使用的单词(例如“到您网站的免费链接”),那么阻止用户发布这些单词是一种有效的解决方案。如果您担心用户在其帖子中合法使用了这些单词而在您的网站上发布时遇到问题,则可以设置过滤器,使其忽略来自已建立用户的帖子。
rel="nofollow"
垃圾邮件发送者倾向于将注意力集中在允许其发布搜索引擎将跟随的链接的站点上(从而提高了所宣传站点的搜索排名)。
通过添加rel="nofollow"
用户生成的内容中包含的任何链接,可以使您的网站对垃圾邮件发送者的吸引力降低,但是,这种方法可能不起作用,因为大多数垃圾邮件都是自动化的,垃圾邮件发送者无法知道网站是否使用rel="nofollow"
链接。
内容可以由任何人发布,但是,一旦内容显示在网站上,也可以将其标记为垃圾邮件(只有在访问者认为垃圾邮件内容相对不常见的情况下,此选项才有效:如果允许垃圾邮件超越有用的评论,大多数访问者都不会将其标记为垃圾邮件)。
游戏化是激励用户举报垃圾邮件的好方法。考虑向您的站点添加“标志权重”功能:垃圾邮件用户报告的次数越多,他们获得的积分就越多。这将使查找垃圾邮件更加有趣,并为举报垃圾邮件的人吹牛。反过来,这将鼓励用户举报垃圾邮件。
在发布到网站上之前,人员必须查看发布的每一项内容-虽然这不会阻止垃圾邮件的发布,但确实会阻止向网站的访问者展示垃圾邮件(从而降低了网站对垃圾邮件发送者的价值) 。
用户注册是对CAPTCHA的一种改进,因为在被允许方便地发表评论之前,用户仅被迫证明自己是人类一次 -从技术上讲,这不是垃圾邮件预防的另一种形式,尽管它确实消除了由特定用户或一组用户(由用户名,电子邮件,IP地址或其他标识因素标识)更易于实施。
管理员可以查看新用户注册,而不是批准每个帖子,而是根据用户注册是否与已识别的垃圾邮件发送者或自动垃圾邮件发布者一致来确定是否批准用户。
垃圾邮件发送者如果无法在帐户上自由发布垃圾邮件,很少记得回到他们创建的帐户-要求新用户创建一定数量的帖子(如果社区能够标记垃圾邮件)和/或等待一组取消对发布链接或多个帖子的限制之前的时间。
如果您向会员收取费用,即使费用很小,垃圾邮件发送者也将被迫权衡会员成本与在您的站点上发布垃圾邮件的价值(并为了更容易的目标而将您的站点传递出去)。
如果只允许已被其他用户邀请的人进行注册,这将减少垃圾邮件的数量(人类通常不邀请机器人)。
以下来自Drupal 项目BOTCHA。
实施蜜罐陷阱。其要点是将字段添加到具有特定值的表单中,然后由JS对其进行修改。垃圾邮件是任何形式的提交,其计算值与我们需要的不同。
与上面相同,但不是将特定字段的值用作计算源,而是将CSS中的数据用作计算源。
与HoneyPot2类似:将JS构造的需求进行比较。区别在于初始值是通过GET参数传递的。
大多数网站管理员会发现,上面列出的解决方案(禁止用户生成的内容除外)的组合最适合他们的网站,并且必须实施至少一个解决方案,以防止自动垃圾邮件阻塞访问者的讨论。
我们最近通过一个非常简单的实施方式从“与我们联系”表单中消除了垃圾邮件。我们在HTML表单中添加了一个标记为“ URL:”的输入,并使其对实际用户不可见。然后,在表单处理器中,我们检查它是否具有值并采取相应措施。
垃圾龙头一直在诱饵。他们输入了一些垃圾网站的URL。我们的脚本看到了这一点并丢弃了注释(实际上,我们正在回收这些碎片,因为我们正试图成为一个绿色环保的公司)。有一阵子,我们仍会将有问题的评论存储在数据库表中以供审核,但会拒绝将结果通过电子邮件发送给任何地方。这就是我们知道它起作用的方式。
通过这种简单的方法,我们每天从大约30多个垃圾邮件“与我们联系”中获取零邮件。
随您选择,祝您好运!
我有一个论坛,在这里我临时启用匿名帖子。我不想使用验证码,因为我经常是我自己,很难阅读它们,这会阻止人们发表评论。为了帮助防止垃圾邮件,我使用Akismet捕获传入的邮件。Akismet并非安全可靠,但确实使我的生活变得轻松多了。
但是,您必须要注意误报。因此,我要做的就是在我的post对象上创建一个“垃圾邮件属性”,并将其设置为Akismet的返回值。如果某个帖子被标记为垃圾邮件,我会给自己和电子邮件,然后我可以决定是否为垃圾邮件。