wordspew插件可以给Blog添加一个实时的ajax聊天窗口,也可以用来当作一个简单留言板. 本来一直用得挺好的,从昨天开始,突然出现大量垃圾留言,每个都大同小异,最开始都夸奖一下俺的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个链接就杀无赦,等等。
最新评论共有 0 位网友发表了评论
查看所有评论
发表评论
热点关注

