用MT-Keystrokes防止垃圾留言
Movable type作为一款强大的blog软件,却有着让人诟病的缺点:脆弱的防垃圾留言能力。虽然自带的防spam功能基本可以防止垃圾留言在前台显示,但是每次要在后台大把删除spam实在是一项让人厌烦的工作。和垃圾留言的斗争从来没有停止过,除了对留言进行评分,让用户填写图形验证码,还可以通过对用户留言的行为进行分析,来防止spam。MT-Keystrokes就是这么一个防止spam的插件。
MT-Keystrokes防止spam的原理在于通过分析留言的行为,判断是否为spam。如果是正常留言,用户总是要有点击的行为,如果是bot批量留言,就没有这种行为。这样就可以防止垃圾留言并且不会影响用户体验。
MT-Keystrokes安装比较简单:
1. 上传文件
将代码解压缩,将主要的插件文件keystrokes.pl上传到安装目录下面的plugins文件夹。对于动态生成模板的需要将function.MTKeystrokes.php上传至/php/plugins路径。
2. 修改模板
每个有留言表格的模板都需要修改。默认安装的情况下,留言表格位于Individual Archive这个模板。找到留言表格的位置,就在表格声明的后面插入<$MTKeystrokes$>标签。比如:
... <form method="post" action="/mt/mt-comments.cgi" name="comments_form"> <$MTKeystrokes$> <input type="hidden" id="entry_id" name="author" /> <input id="author" name="author" /> ...
接下来需要在留言表格的文本区调用javascript脚本. 脚本函数名为keystrokes,参数是当前的表格。如下:
... <label for="text">Comments:</label> <textarea id="text" name="text" cols="50" onkeypress="keystrokes(this.form)"></textarea> <input type="button" onclick="window.close()" value="Cancel" /> ...
由于有的用户会在其他的编辑器编辑好后复制,粘贴然后提交,于是这里增加了提交按钮点击检查:
... <input type="button" onclick="window.close()" value=" Cancel " /> <input type="submit" name="preview" value=" Preview " /> <input type="submit" onclick="keystrokes(this.form)" name="post" value=" Post " /> ..
这样,插件就安装好了。该插件允许通过修改代码进行设置是否对所有的blog进行同样的设置,以及是否将spam的记录写入Activity Log。
用这种方法防止垃圾留言,这里半年来还没有落网之鱼。
本来吧,我是不打算说话的
本来吧,我认真看了下这篇文章,但是代码啥的跳过
本来吧,我觉得自己不大用得上
刚准备下线时发现旧博客上两条狂犬病的垃圾评论~~
真是有鬼!
我可是很少碰到垃圾评论的,一年可能碰到2回。。。
刚看完你这篇文章就是第二回!
鬼!
看来我这文章还真有用。。。
yo2用的是wordpress,wordpress也有很多插件。不过你这么少的spam都不要操心这个问题了。
有点复杂呵。
明天就上北上去宁德山沟里了。哎,大学结束了。结束的时候也是新的开始。心情相当复杂啊!
我相信到你习惯还会郁闷一段时间的。
刚毕业都那样。