现在的垃圾留言越来越智能,并且从留言内容几乎看不出来是垃圾留言,而大量的垃圾留言会导致文章可读性下降,并可能会被搜索引擎惩罚,经过一段时间的分析和思考,我发现一种判定垃圾留言的新方法,可以从一定程度提高垃圾留言的识别率。
这种新方法是基于对留言者姓名的过滤,为了实现垃圾留言的功效,这类留言者的姓名通常具有一定的规律,比如姓名为“起重机”、“虚拟主机”、“代开发票”等用户的留言,几乎百分之百为垃圾留言,通过总结这类姓名的特点,并对其进行过滤,就可以提高识别垃圾留言的准确率。
将下面几行代码加入到月光Z-Blog反垃圾留言过滤插件的Antispam_chkComment函数中,就可以实现增强型的垃圾留言识别,对于有垃圾留言倾向的评论,会自动转到留言审核界面,审核完成后留言才会显示。其中strFilter中是我总结的一些常见的垃圾留言特征字符串。
Dim i
Dim strAuthor
Dim strFilter
Dim strFilterWord
strFilterWord= "电影,影院,影视,魔兽,英语,网站,电脑,地图,租房,论坛,营销,社区,nba,qq,seo,在线,赚钱,手机,聊天,兼职"
strAuthor = objComment.Author
strFilter = Split(strFilterWord, ",")
For i = 0 To UBound(strFilter)
If InStr (strAuthor, strFilter(i)) > 0 Then
objComment.log_ID=-1-objComment.log_ID
If objComment.Post Then
End if
If IsEmpty(Request.Form("inpAjax"))=False Then
objComment.Content="您的评论因被怀疑为 Spam 而进入审核过程,请勿再次提交。"
Call ReturnAjaxComment(objComment)
Response.End
End If
Call ExitError("您的评论因被怀疑为 Spam 而进入审核过程,请勿再次提交。")
End If
Next
另外,使用一些SQL语句也可查询出疑似留言,具体使用方法是,使用Access打开MDB数据库,点击数据库窗口左侧的查询,然后点新建,选择向导或设计视图,然后再视图菜单中选择“SQL视图”,就可以执行自己写好的SQL语句,下面是一些常用的SQL语句。
按数量查看留言者留言频率
select comm_homepage,count(*) from blog_Comment group by comm_homepage having count(*)>10 order by count(*) desc
留言网站你地址为单个网页的留言(通常只有SEO会这么干)
select * from blog_Comment where comm_homepage like '*.htm*'
留言内容包含UBB的链接
select * from blog_Comment where comm_content like '*url*'