【绯闻SEO】解决wordpress评论被大量垃圾攻击
2018/07/04/17:47:00 阅读:2154 来源:绯闻SEO 标签:
百度细雨算法
说不上是最近忙,算是一直在忙,管理seo博客的时间越来越少,今晚主要抽时间记录一下最近seo博客的两个变化,表示一下七哥偶尔还在关注着seo变化。刚好这两天七哥的seo博客备案掉了,之前由于种种原因用了快速备案,现在算来有效期也就半年吧,通过备案之后使用cdn,相对提升一下访问速度,虽然现在的博客流量大不如前了,但是尽可能提供好的访问体验吧,掉了备案之后被百度cdn停止了加速服务,干脆就把网站迁回了香港空间,带宽、资源都比较充足的空间,在迁移过程中发现了个新问题,小小的seo网站mysql数据库导出来居然有120多M,这个完全出乎意料了。
仔细查看导出来的mysql数据库,发现wp_comments表居然是五六万条记录,大部分数据都是被垃圾评论充斥,虽然这些垃圾评论处于未审核状态,也就是不会被显示的状态,但是对于整个数据库的查询性能是有一定损耗的,况且都是通过post的方式增加的,因为在流量相对小的情况下,每天有不同IP在模拟着提交评论,但是这些IP都不是真实访问IP,是时候该清理一下了。
wordpress自带的Akismet评论插件能有效阻止大部分的垃圾评论,但是这些评论内容最终都会记录在wp_comments表里面,堆积大量的冗余数据,于是就采用了网上很多人建议的方法,修改根目录下的wp-comments-post.php文件命名,同时修改主题文件目录下的comments.php对应调用的文件名,覆盖上线后发现没有什么卵用,半小时后还是增加了10条垃圾评论(纯英文)。
于是采用了第二种方式,进行functions.php中增加评论内容的过滤,因为垃圾评论的内容都是纯英文(部分带链接)的,于是下面这方法增加到functions.php中,过滤生效了
/*refusedspam*/
functionrefused_spam_comments($comment_data)
{$pattern=‘/[一-龥]/u’;
if(!preg_match($pattern,$comment_data['comment_content']))
{
wp_die(‘你的评论内容七哥好像看不懂噢!’);
}
return($comment_data);
}
add_filter(‘preprocess_comment’,'refused_spam_comments’);
这段代码的作用是,判断留言内容是否是包含中文,不包含的话验证过不了,清理垃圾记录后恢复到十几M的体量,速度算是略有提升。
虽然有比较长时间没有专注在纯seo领域,但偶尔还是会关注百度、360的算法变化,万变不离其宗,“用户体验”这个被用烂的词,只要做到极致,结果也不会太差的,细节往往决定网站获取流量的成败,最后的焦点最好还是回归到转化,在于如何让现有的流量最大可能性的转化,这个是seoer未来的发展方向,单纯的只是通过seo来获取排名,这个阶段属于比较初级的,况且很多seoer也不甘心于只是为别人做嫁衣。
热门评论