真正彻底解决PJBlog被滥发垃圾广告评论与留言问题的办法
话说过了和谐期后,X-Force 第一时间把留言重新开启了,但开启后没过1分钟,刷新一下竟然发现诡异地就来了3条垃圾广告评论和2条广告留言。。。我顿时无言。。这个问题其实以前也一直困扰着我~每天上线肯定要化不少时间去删这些垃圾!但是为了与大家交流,又不舍得关闭评论,所以就一直这样耗着。。。
对于这些可耻卑贱的所谓SEO“专家”,X-Force 真是超级无敌严重的讨厌!!因为它们总是要浪费我宝贵的时间和生命!下面将这些只懂得用某些所谓“高科技”软件到别人网站群发垃圾广告的生物,我在这里尊称为动物。
为了对付动物们,舜子在最新的2.7版的PJ中已经更换了验证码,可是很难理解依然会有那么多的广告机能随意的发垃圾。而且即使验证码显示为空白照样会有很多广告。最后,偶家家的Jay哥哥也弄了个.Net的严重复杂的验证码,但依然行不通,不过不是牛a也不是牛c的他却发现了PJBLOG存在一个严重的外部提交漏洞。
漏洞成因:
blogcomm.asp文件对验证码判断不严格。
如果用户没有请求过GetCode.asp文件,www.x-force.cn那么服务器端Session里面的GetCode值为空,而用户提交的数据里面验证码也为空,这样刚好空等于空,反而通过了验证码验证。
也就是说,动物们的广告群发器不去请求注册码的页面也就能直接发评论、留言,所以无论验证码多么强大,垃圾广告依然还有~~
知道原理后,其实用 XMLHTTP 就能非常轻松地写出一个能绕过PJBlog验证码的广告群发机了,核心代码是相当的简单的!不过为了广大PJ用户,www.x-force.cn我还是不发出来吧~其实看到这里能写出来的人绝对不是少数了。话说网上某人的站子上就秀了出来。。。
不过,解决这个问题也是非常简单的,下面就来了~
修补评论漏洞办法:
修改blogcomm.asp文件,在94行(大概)的If判断表达式中加入 or IsEmpty(Session(”GetCode”)) 即可。
修改后应该如下:
IF (memName=empty or blog_validate=true) and (cstr(lcase(Session(”GetCode”)))<>cstr(lcase(validate)) or IsEmpty(Session(”GetCode”))) then
修补留言本漏洞办法:www.x-force.cn
修改Plugins/GuestBook/bookaction.asp文件,找到 IF cstr(lcase(Session(”GetCode”)))<>cstr(lcase(validate)) 后面加上 or IsEmpty(Session(”GetCode”)) 即可。
修改后应该如下:
IF (cstr(lcase(Session("GetCode")))<>cstr(lcase(validate))) or IsEmpty(Session("GetCode")) then
嗯,就改这两个地方而已。搞定了。过一两天看看还有被人乱发广告不?人肉广告可不算的哟!呵呵~如果你发现你的博客已经没有广告留言有点不习惯的话,建议每天自己手动添加10条一上指向“异次元” 的广告评论~那样可能心理会平衡一点的~~哇咔咔。
言归正传,因为不同的人使用的 PJBlog 的版本不尽相同,也有些朋友自己曾改过一些代码。所以 X-Force 不能确定这里提供的文件覆盖是否能正常,如果你确实不想搞代码的话就下载去试试。否则的话,还是建议你老老实实地修改代码吧。但是,但是!!任何操作之前记得记得要备份好旧的文件啊!!!这是最最最最重要的!
PJBlog官方已经升级,本文章内容已经过期,谢谢大家观赏!
/ 关注 “异次元软件世界” 微信公众号,获取最新软件推送 /
如本文“对您有用”,欢迎随意打赏异次元,让我们坚持创作!
赞赏一杯咖啡