wordspew插件的垃圾留言的解决办法
wordspew插件可以给Blog添加一个实时的ajax聊天窗口,也可以用来当作一个简单留言板,具体效果可见本blog左侧栏的在线聊天模块。本来一直用得挺好的,从昨天开始,突然出现大量垃圾留言,每个都大同小异,最开始都夸奖一下俺的blog很好或者扯些乱七八糟的东西,后面带上四五个链接。回到管理界面,发现这些信息还不能批量删除,所以得想办法从根本上防止这些垃圾的出现。
发送垃圾留言应该是由一些技术含量的,不至于打开一个个的blog,写上信息点击发送,他们一定是利用了wordspew的默认发送地址和方式,直接访问那个地址发送垃圾留言的,所以应该直接从wordspew的源代码入手,修改这个默认发送地址和方式。
在wordspew插件目录下,打开文件fatAjax.php,找到
param = 'n='+ encodeURIComponent(currentName)+'&c='+ encodeURIComponent(currentChatText) +'&u='+ encodeURIComponent(currentUrl);
将其中的c换成cc:
param = 'n='+ encodeURIComponent(currentName)+'&cc='+ encodeURIComponent(currentChatText) +'&u='+ encodeURIComponent(currentUrl);
再打开文件wordspew.php,找到
$jal_user_text = isset($_POST['c']) ? $_POST['c'] : "";
将其中的c换成cc:
$jal_user_text = isset($_POST['cc']) ? $_POST['cc'] : "";
昨天改完了这里,还是不断出现垃圾留言,重新检查程序的代码,发现作者还预留了一个接口"When user submits and javascript fails",可能是给那些关闭了javascript的访问者用的。可是这个完全没必要,这个插件本来就是javascript堆起来的,关闭了javascript还用个P呀。所以找到它下面的代码,注释之即可:
// When user submits and javascript fails
if (isset($_POST['shout_no_js'])) {
if ($_POST['shoutboxname'] != " && $_POST['chatbarText'] != ") {
jal_addData($_POST['shoutboxname'], $_POST['chatbarText'], $_POST['shoutboxurl']);
jal_deleteOld(); //some database maintenance
setcookie("jalUserName",$_POST['shoutboxname'],time()+60*60*24*30*3,'/');
setcookie("jalUrl",$_POST['shoutboxurl'],time()+60*60*24*30*3,'/');
//take them right back where they left off
header('location: '.$_SERVER['HTTP_REFERER']);
} else echo "You must have a name and a comment";
}
当然如果你想保留这个功能(关闭javascript发送留言),可以在其中加入对$_POST['chatbarText']的判断语句,比如发现超过2个链接就杀无赦,等等。
经过以上修改后,暂时没有新的垃圾信息的骚扰,不知是否以后会新的或者我不知道的垃圾信息发送方式。欢迎留言指正。
能不能把akismet用在这里呢?那就方便了
很不幸,托共产党的照顾,我这里用不了akismet.
改了,希望管用,呵呵。
从我这里来看是没有问题的,今天一整天都没有垃圾留言,而昨天垃圾信息不断刷屏。
按照以上方法修改后,写好留言点击发送变的没反映了。
应该不会的呀,经过好几个人测试了的, 你把地址给我看看?
[...] 原载于http://zhiqiang.org/blog/293.html。 [...]
请问这方法合适普通的留言板吗?我的站每天被广告灌.删的手软.上网搜索解决办法找到了您这里,我的留言板地址在下面,不是广告,请帮忙看看这类留言板有办法解决吗?谢谢.
http://www.liutingjun.com/bbs/bbs/index.asp
我的留言板很简单的,没有什么后台控制。怎么改变留言传输参量或增加冗余参量?自己给加一个字符验证麻烦吗?本人不太懂这些,给个源文件截图你看看。
http://www.sz68.com/forum/attachment/Mon_0607/18_677_b3396e130cfa88c.jpg
你有什么在线联络方式?我发给你看看吧?要是不忙的话。
我对于asp一点也不懂,机器上也没有装asp,你应该去找那些使用了跟你同样的留言程序的人问问。
我的留言板天天出现垃圾留言,每天得删三十多条,如果隔一天不删真是成灾,不知如何解决呢.