我正在考虑允许用户在不让他们注册或提供任何识别信息的情况下发布到我的网站。如果每个帖子都发送到数据库队列,然后我手动筛选这些帖子,我可能会遇到什么样的问题?我该如何处理这些问题?
5 回答
筛选每个帖子将是乏味和令人厌烦的。并且容易出现烦人的管理员垃圾邮件。我的建议是尽可能多地自动化筛选。此外,提供任何识别信息都无法防止垃圾邮件(机器人只会生成它)。
很多项目实施识别系统:首先用户必须发布 1-2 个被批准的帖子,然后通过 IP 和(可能)一个 cookie 他被识别为受信任的发布者,所以他的帖子自动出现(稍后可以标记为垃圾邮件)。
还可以使用一些关于帖子内容的启发式方法(如帖子中的链接数量)来自动丢弃潜在的垃圾邮件帖子。
最明显的问题是,如果您的网站足够受欢迎,您会被提交屏幕的数量所淹没。
我会确保添加一些管理工具,这样您就可以自动终止来自特定 IP 地址或匹配特定正则表达式的所有帖子。这应该有助于更快地摆脱明显的垃圾邮件,但同样,你必须在所有这些方面都在驾驶。
乏味似乎是最大的担忧——手动筛选帖子对垃圾邮件有效(我假设这是您想要清除的内容)但非常无聊。
除草时最好喝一杯咖啡和听好听的音乐来解决这个问题?
我发现询问一个简单问题的答案会将浏览器作为图像发送(例如“2 + 3 - 4 =”,“验证码”的一种变体,但并不那么烦人),并带有一点点 Javascript很好。
发送带有图像和答案字段的表单,以及带有“挑战”(一些随机生成的字符串)的隐藏字段。当用户提交表单时,对挑战和答案进行哈希处理,并将结果发送回服务器。服务器可以在将其添加到数据库以供审查之前检查有效答案。
前期工作似乎很多,但可以节省数小时的审核时间。使用 jQuery:
<script type="text/javascript">
// 哈希函数来掩盖答案
函数答案掩码()
{
var a = $('#a').val();
var c = $('#c').val();
var h = hex_md5(hex_md5(a) + c);
$('#a').val(h);
}
</脚本>
<form onsubmit="answerMask()" action="/cgi-bin/comment.py" method="POST">
<表格>
<tr><td>评论</td><td><input type="text" name="comment" /></td></tr>
<tr><td>#把图片放在这里#</td><td><input id="p" type="text" name="a" size="30" /></td></tr>
<tr><td><input id="c" type="hidden" value="ddd8c315d759a74c75421055a16f6c52" name="c" /></td><td><input type="submit" value=" Go "> </td></tr>
</p>
</form>
编辑更新...
我在一个网站上看到了这种技术,我不确定是哪一种,所以这个想法不是我的,但你可能会发现它很有用。
提供一个带有挑战字段和评论字段的表单。以“从以下位置选择第三个单词:glark snerm hork morf”作为挑战的前缀,这样单词以及要选择的单词很容易在服务器上生成,并且在表单内容返回时很容易验证。
关键是让用户做一些事情,应用一些脑细胞,以及比脚本小子更值得的工作。
- 试图看起来合法但不合法的帖子
- 纯粹的体积
这些是我在博客上看到的问题。