PJBlog 防垃圾留言

我用的是PJ2.6里自带的留言插件,经常发现有好多垃圾留言(我想各位也会碰到)。
我分析了一下,发现在我申请的51.la统计里没有写留言访问者的相关记录,但在IIS日志里是有记录的。
看来这些留言都是通过工具来发的。
51.la统计,是用js文件来调用的,既然没有记录,那肯定是js没有执行。
于是我想到用js来做一个防垃圾留言功能。改过后并不影响正常留言,从表面看不出区别。
具体方法如下:
1、打开PluginsGuestBook文件夹,
2、打开guestbook.asp,在留言表单里加上:
[code][/code]
3、打开bookaction.asp,在
[code]post_Message=CheckStr(request.form(“Message”))
FlowControl=false[/code]后面加上:
[code]Dim validatevalue
validatevalue=trim(request.form(“validatevalue”))
If validatevalue<>“browser” Then
showmsg “留言发表错误信息”,”请使用浏览器来发表留言。
“,”ErrorIcon”,”plugins”
exit function
end if[/code]

自从改过后,再也没有垃圾留言出现了,虽然IIS日志里还是有许多发留言的动作。说明此方法有效!

对修改不熟悉的朋友,可以下载我这里修改好的文件去替换。其中留言提交处理页面我还微调了判断的顺序,减少了某些情况下的不必要的判断,对性能有少许提高。
[down=attachments/month_0708/j200782110331.rar]点击下载Guestbook.rar[/down]

[color=Blue]2007年11月4日更正:
由于有的博客改动比较大,所以留言表单可能不会是第一个表单,之前写的:document.forms[0].validatevalue.value='browser'就会有问题,现在用具体名称来代替原来的索引。[/color]

[color=Red]对了,补充一个方法:[/color]
一开始发现垃圾评论时,我查看了下IIS日志,发现好多客户端用的是Java。于是我加上了客户端过虑,也起到了一定效果。方法如下:
在conn.asp的最上面加上:
[code]Dim UserAgent
UserAgent = Trim(Lcase(Request.Servervariables(“HTTP_USER_AGENT”)))
If InStr(UserAgent,”teleport”) > 0 or InStr(UserAgent,”webzip”) > 0 or InStr(UserAgent,”flashget”)>0 or InStr(UserAgent,”offline”)>0 or Instr(UserAgent,”java”) Then
Response.Write “请不要采用teleport/Webzip/Flashget/Offline等工具来浏览博客!”
Response.End
End If[/code]
[color=Blue]2007年11月4日补充:
上面这代码是VBS,所以如果你的conn文件是JS语言的,请自行调整。[/color]

《PJBlog 防垃圾留言》有20个想法

  1. 被我打败了吧,呵呵,只是个玩笑。把下面的我发的玩笑留言删除吧。
    别生气啊,只是测试一下,你的防垃圾留言和评论是不是无敌的。[smile]

  2. 我哪有那么小气啊。呵呵。
    人肉谁都防不了啊。只能用关键字过滤。
    一般人肉的比较少见的。

  3. 只要你的值是固定的 那就不是完全的防垃圾
    可以考虑这样
    增加一个输入验证表单,验证今天几号,建议使用js在本地客户端验证,这样可以减少于服务端的交互,减轻服务端负
    呵呵

  4. 对了,补充一个方法:
    一开始发现垃圾评论时,我查看了下IIS日志,发现好多客户端用的是Java。于是我加上了客户端过虑,也起到了一定效果。方法如下:
    在conn.asp的最上面加上:
    Dim UserAgent
    UserAgent = Trim(Lcase(Request.Servervariables("HTTP_USER_AGENT")))
    If InStr(UserAgent,"teleport") > 0 or InStr(UserAgent,"webzip") > 0 or InStr(UserAgent,"flashget")>0 or InStr(UserAgent,"offline")>0 or Instr(UserAgent,"java") Then
    Response.Write "请不要采用teleport/Webzip/Flashget/Offline等工具来浏览博客!"
    Response.End
    End If

  5. 我昨天看到,就试了一下。今天早上来还没发现垃圾留言,很高兴,过来谢一下。[wink]

  6. 用你的方法修改了下,不成功,我用的留言本不是PJ自带的,是经过仲夏夜和jogocun修改的,他们修改的对核心文件没怎么修改,希望能赐教下修改方法!他们修改的留言本是2.3BETA!

  7. 站长:你上边介绍的留言本屏蔽广告机的方法,在2.7 B5下怎么修改呀?
    帮帮忙哈
    QQ:273830915

发表评论

电子邮件地址不会被公开。 必填项已用*标注