实施“举报此内容”和垃圾邮件检测机器人或触发事件
-
24-09-2019 - |
题
我创建了一个网站的论坛,并就实施“举报此内容”功能的计划。
在所有诚实,我不知道该功能将是多么有用(点亮必要的)是,由于用户账号(由管理员创建)将需要发布,但解决的办法吸引我。
因此,在短期,这是该方案:
有关的所有用户,将有只读到所有(非受限)在论坛上内容的访问。对于身份不明的用户会有一个回复按钮,并将此报告内容按钮存在。前者将继续要求输入登录信息,而我的计划,后者不会,让任何人都将能够旗可疑或令人反感的内容。
因此我面临的问题基本上是“机器人点击”,或者更确切地说,如何实现系统,以便它不会通过“点击机器人”上当。
有该想到一些方法:
1)用户代理,点击 2)以任何方式,点击反应之前需要若干标志(在预定的时间跨度?) 3)robots.txt的结果 4)要求的第二形式对人的输入(验证码或“指定原因”)
我觉得他们什么:
1)不可靠的(作为唯一的解决方案),点击 2)这需要海量的用户可能导致事件从未被触发点击 3)这可能是“正确”的路要走,但只会对那些谁尊重它,点击工作 4)咩,我讨厌的验证码和需要原因可能提高标准过高保持功能有用
将在(高度开明)社会上有什么样的方法来跟我分享一下?
解决方案
您可以追加与JavaScript的<form>
'报告此' appendChild();
到DOM。
这将防止大量的垃圾邮件。
这也将防止用户不运行的JavaScript看到报告按钮。但由于这是一个特点,不妨碍用户体验,它可能是一个可以接受的选择。
window.onload = function() {
var f = document.createElement('FORM');
f.method = 'post';
f.action = 'report.cgi';
var b = document.createElement('INPUT');
b.type = 'submit';
b.value = 'Report this';
f.appendChild(b);
document.body.appendChild(f);
}
注意:的结果,
该rel="nofollow"
属性确保搜索引擎不“计数”的链接,他们却跟着它(是的,顾名思义不同)。
如果你希望搜索引擎不要触摸某个文件,使用robots.txt
注2:结果
报告的东西是一个动作是“变化”的东西在服务器上。因此,它不应该是一个GET
要求相反,它应该是一个POST
请求。换句话说:不要使用<a href"">
而是提交<form>
其method
参数设置为"post"
其他提示
您可以简单地重定向到用户需要输入一个原因报告内容的形式。机器人可能不会在这里输入任何东西,如果用户没有输入任何形式将不会被处理。
您错过使得链接nofollow的一个,但我会选择他们带/不同意,需要人力投入(理由,投诉人的详细信息)到柜台机器人和需要大量的标记来停止人只是标记的人的组合不喜欢在论坛上。