自升级wordpress3.0以后,一切风调雨顺,自上周起,被洋鬼子的广告肉机盯上了,平均每三五分钟一条广告,评论内容大致相同,评论ip来自五湖四海,各不相同。
虽然说akismet是wordpress中antispam无二的选择,但是akismet那个验证码让人很纠结,于是只能自己山寨一把了。
土办法步骤一 转发默认评论地址
常见的洋鬼子的广告肉机,都是利用了wordpress公开的post地址来做到脚本灌入的,其默认地址是wp-comments-post.php,第一步要做的是,怎么这个地址(以nginx为例):
rewrite ^/wp\-comments\-post\.php$ http://www.54chen.com/ last;
土办法步骤二 伪造假地址
既然第一步中的真实地址无法访问了,那第二步肯定是假冒出来可以访问的地址:
if (!-e $request_filename){
rewrite ^/wc([0-9]+)\.html$ /wp-comments-post.php?54chen=$1 last;
}
土办法步骤三 javascript制造假post
完成上面两步之后 ,最后一步就是将原来的comments.php修改post action的地址为伪造的地址,为了更加有效果,使用js来产生随机的wc1234.html即可:
在评论的form中增加onsubmit="chenAntiSpam()" name="commentform";
再增加js:
<script type="text/javascript">
function chenAntiSpam() {
var param ='wc'+Math.round(Math.random()*1000)+'.html';
document.commentform.action = 'http://www.54chen.com/'+param;
}
</script>
大功告成,有效防住了洋鬼子的灌。
原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]
捐赠说明