Simple comments spam solution

时间:2017-11-13 作者:Catherine Anderson

我想实施一个解决方案,打击评论垃圾邮件和方法很简单。我想,每一个评论,有“网站”字段填写被自动标记为垃圾邮件。

此外,在提交之前或之后,应显示一条小警告,告知用户如果使用“网站”字段,其邮件将被标记为垃圾邮件<;这不是强制性的

实现这一目标的最佳方法是什么?

3 个回复
SO网友:Frank P. Walentynowicz

如果您不想让人们填写网站字段,只需将其从表单中删除即可。输入此代码functions.php 当前主题:

function wpse_remove_comment_url($fields) { 
    unset($fields[\'url\']);
    return $fields;
}
add_filter(\'comment_form_default_fields\', \'wpse_remove_comment_url\');
这比显示字段并建议用户不要使用它更符合逻辑。

UPDATE

为了不迷惑用户,愚弄一些机器人,让我们url 字段对用户不可见,对机器人程序可读。将此添加到style.css:

p.comment-form-url { display: none }
检查url 提交时的字段,如果该字段不为空,则可能有垃圾邮件注释。为什么可能?因为,如今更复杂的机器人可以扫描CSS和JS脚本,以避免陷阱。至少,这是一个起点。

SO网友:Kristian Kalvå

你在这里描述的是糟糕的用户体验,有很多拥有自己网站的合法用户会想要填写网站字段(比如我自己)。

当你有一个普通用户看不到的字段时,蜜罐策略会更好地工作,而机器人只需查看标记即可。然而,回避这个问题并不难。

打击评论垃圾邮件的最佳方法是安装Akismet。Akismet就是为了完成这一特定任务而设计的,它在打击评论垃圾邮件方面发挥了神奇的作用。或者你可以像nrkbeta那样做。否,即要求人们在回答问题之前先回答问题:http://www.niemanlab.org/2017/03/this-site-is-taking-the-edge-off-rant-mode-by-making-readers-pass-a-quiz-before-commenting/

SO网友:Self Designs

有一种更好的方法来对付垃圾邮件。如果您查看WooCommerce的源代码,您可以找到一些绝对定位网页外字段的代码。称之为“email\\u 2”,这样机器人就会认为这是某种电子邮件确认。由于机器人通过HTML进行解析,他们将看到它,但由于它绝对位于屏幕之外,人类永远不会看到它。您需要记住将其从选项卡索引和自动完成中删除,但有一些html属性可以做到这一点。

<form action="#" method="post">
  <label>Email Address</label>
  <input type="hidden" name="form_sent" />
  <p><input type="email" class="subscription-email" name="subscripton_email" /></p>
  <p style="left:-999em; position:absolute;"><input type="email" name="email_2" tabindex="-1" autocomplete="off" /></p><!-- Spam trap -->
<p><input type="submit" name="subscription" value="Sign Up" /></p>

这是我创建的插件的一个例子,它实现了这个想法。提交表单时,只需检查$\\u POST[\'email\\u 2\']是否存在。如果已填写,则可能是垃圾邮件。

结束