垃圾评论的屏蔽处理
自10月份以来,FireStats统计到的Excel365.net网站的访问量很大,每天有8、9K的PV和1K左右的IP,但这个统计数字与百度统计以及GA的结果都相差比较大。
在后台检查访问日志,发现有两篇帖子的访问特别频繁,并且有很多评论的记录,但实际页面上并没有显示这么多的评论。这个时候想起来我装过Akismet反垃圾评论插件。后台查看Akismet统计,发现自9月份起截获的垃圾评论数猛增,至今总共有23万多条,光11月份就占了11万条,最近的二十几天就有将近3万条。
Akismet把这些垃圾评论标记为Spam,不在页面当中显示,但在后台评论页面里面的垃圾评论分类当中可以找到这些内容,虽然系统会按照存放时间自动清除,但在这里还是塞满了7000多条垃圾评论。这些评论内容大多出于SEO的目的,包含一些关键词或页面链接,绝大部分是英文内容,也有少量日文和中文。
登录到网站数据库,找到wp_comments,用SQL把其中标记为Spam的垃圾评论做个IP地址的查询:
SELECT `comment_author_IP` FROM `wp_comments` WHERE `comment_approved`='spam' |
查询到的7000多条IP记录导出来放到Excel里面,截取前三个字节然后去重复,剩下300多条IP段,在网上做了一下批量查询,得到下面的结果:
110.82.132.* 福建省莆田市电信 110.82.133.* 福建省莆田市电信 110.85.100.* 福建省莆田市电信 110.85.102.* 福建省莆田市电信 110.85.103.* 福建省莆田市电信 110.85.104.* 福建省莆田市电信 110.85.105.* 福建省莆田市电信 110.85.106.* 福建省莆田市电信 110.85.107.* 福建省莆田市电信 110.85.112.* 福建省莆田市电信 110.85.113.* 福建省莆田市电信 110.85.114.* 福建省莆田市电信 110.85.115.* 福建省莆田市电信 110.85.68.* 福建省莆田市电信 110.85.69.* 福建省莆田市电信 110.85.70.* 福建省莆田市电信 110.85.71.* 福建省莆田市电信 110.85.72.* 福建省莆田市电信 110.85.73.* 福建省莆田市电信 110.85.74.* 福建省莆田市电信 110.85.75.* 福建省莆田市电信 110.86.164.* 福建省厦门市电信 110.86.165.* 福建省莆田市电信 110.86.166.* 福建省莆田市电信 110.86.167.* 福建省莆田市电信 110.86.184.* 福建省莆田市电信 110.86.185.* 福建省莆田市电信 110.86.186.* 福建省莆田市电信 110.86.187.* 福建省莆田市电信 110.86.94.* 福建省厦门市电信 110.89.10.* 福建省莆田市电信 110.89.11.* 福建省莆田市电信 110.89.12.* 福建省莆田市电信 110.89.13.* 福建省莆田市电信 110.89.26.* 福建省莆田市电信 110.89.27.* 福建省莆田市电信 110.89.34.* 福建省莆田市电信 110.89.35.* 福建省莆田市电信 110.89.40.* 福建省莆田市电信 110.89.41.* 福建省莆田市电信 110.89.46.* 福建省莆田市电信 110.89.47.* 福建省莆田市电信 110.89.52.* 福建省莆田市电信 110.89.53.* 福建省莆田市电信 110.89.60.* 福建省莆田市电信 110.89.61.* 福建省莆田市电信 110.89.8.* 福建省莆田市电信 110.89.9.* 福建省莆田市电信 112.101.64.* 黑龙江省大庆市电信 113.128.132.* 山东省济南市电信 113.128.136.* 山东省济南市电信 113.128.139.* 山东省济南市电信 113.128.157.* 山东省济南市电信 113.128.167.* 山东省济南市电信 113.128.173.* 山东省济南市电信 113.128.45.* 山东省济南市电信 113.128.46.* 山东省济南市电信 117.26.116.* 福建省莆田市电信 117.26.117.* 福建省莆田市电信 117.26.118.* 福建省莆田市电信 117.26.119.* 福建省莆田市电信 117.26.192.* 福建省莆田市电信 117.26.193.* 福建省莆田市电信 117.26.194.* 福建省莆田市电信 117.26.195.* 福建省莆田市电信 117.26.200.* 福建省莆田市(城厢区/荔城区)电信 117.26.201.* 福建省莆田市电信 117.26.202.* 福建省莆田市电信 117.26.203.* 福建省莆田市电信 117.26.248.* 福建省莆田市电信 117.26.249.* 福建省莆田市电信 117.26.76.* 福建省莆田市电信 117.26.77.* 福建省莆田市电信 117.26.78.* 福建省莆田市电信 117.26.79.* 福建省莆田市电信 117.26.84.* 福建省莆田市电信 117.26.85.* 福建省莆田市电信 117.26.86.* 福建省莆田市电信 120.33.217.* 福建省莆田市电信 120.33.240.* 福建省莆田市电信 120.33.241.* 福建省莆田市电信 120.33.242.* 福建省莆田市电信 120.33.243.* 福建省莆田市电信 120.33.244.* 福建省莆田市电信 120.33.245.* 福建省莆田市电信 120.37.206.* 福建省莆田市电信 120.37.207.* 福建省莆田市电信 120.37.208.* 福建省莆田市电信 120.37.209.* 福建省莆田市电信 120.37.210.* 福建省莆田市电信 120.37.211.* 福建省莆田市电信 120.37.216.* 福建省莆田市电信 120.37.226.* 福建省莆田市电信 120.37.228.* 福建省莆田市电信 120.37.229.* 福建省莆田市电信 120.37.230.* 福建省莆田市电信 120.37.231.* 福建省莆田市电信 120.37.232.* 福建省莆田市电信 120.37.233.* 福建省莆田市电信 120.37.234.* 福建省莆田市电信 120.37.235.* 福建省莆田市电信 120.37.236.* 福建省莆田市电信 120.37.237.* 福建省莆田市电信 120.37.238.* 福建省莆田市电信 120.37.239.* 福建省莆田市电信 120.37.240.* 福建省莆田市电信 120.37.241.* 福建省莆田市电信 120.37.242.* 福建省莆田市电信 120.37.243.* 福建省莆田市电信 120.40.133.* 福建省莆田市电信 120.40.148.* 福建省莆田市电信 120.40.149.* 福建省莆田市电信 120.40.150.* 福建省莆田市电信 120.43.10.* 福建省莆田市电信 120.43.11.* 福建省莆田市电信 120.43.20.* 福建省莆田市电信 120.43.21.* 福建省莆田市电信 120.43.22.* 福建省莆田市电信 120.43.23.* 福建省莆田市电信 120.43.24.* 福建省莆田市电信 120.43.26.* 福建省莆田市电信 120.43.27.* 福建省莆田市电信 120.43.28.* 福建省莆田市电信 120.43.29.* 福建省莆田市电信 120.43.30.* 福建省莆田市电信 120.43.31.* 福建省莆田市电信 120.43.4.* 福建省莆田市电信 120.43.5.* 福建省莆田市电信 120.43.6.* 福建省莆田市电信 120.43.7.* 福建省莆田市电信 120.43.8.* 福建省莆田市电信 120.43.9.* 福建省莆田市电信 121.205.196.* 福建省莆田市电信 121.205.197.* 福建省莆田市电信 121.205.198.* 福建省莆田市电信 121.205.199.* 福建省莆田市电信 121.205.212.* 福建省莆田市电信 121.205.213.* 福建省莆田市电信 121.205.214.* 福建省莆田市电信 121.205.215.* 福建省莆田市电信 121.205.238.* 福建省莆田市电信 121.205.239.* 福建省莆田市电信 121.205.240.* 福建省莆田市(仙游县)电信 121.205.241.* 福建省莆田市电信 121.205.242.* 福建省莆田市电信 121.205.243.* 福建省莆田市电信 121.205.246.* 福建省莆田市(仙游县)电信 121.205.247.* 福建省莆田市(仙游县)电信 121.205.248.* 福建省莆田市(仙游县)电信 121.205.249.* 福建省莆田市(仙游县)电信 125.78.231.* 福建省莆田市电信 173.231.133.* 美国 CZ88.NET 178.249.14.* 西班牙 CZ88.NET 184.168.152.* 美国亚利桑那州斯科茨代尔市Go Daddy集团公司 184.168.46.* 美国亚利桑那州斯科茨代尔市Go Daddy集团公司 188.143.232.* 俄罗斯 CZ88.NET 189.219.70.* 墨西哥 CZ88.NET 192.99.13.* 加拿大 CZ88.NET 192.99.2.* 加拿大 CZ88.NET 198.245.51.* 加拿大 CZ88.NET 199.16.201.* 美国 CZ88.NET 211.125.78.* 日本 CZ88.NET 213.183.27.* 德国 CZ88.NET 218.57.46.* 山东省菏泽市联通 218.86.50.* 福建省莆田市荔城区电信ADSL 218.86.51.* 福建省莆田市电信ADSL 220.161.100.* 福建省莆田市涵江区电信 220.161.126.* 福建省莆田市电信 220.161.127.* 福建省莆田市电信 220.161.168.* 福建省莆田市电信 220.161.98.* 福建省莆田市涵江区电信 221.178.189.* 江苏省连云港市移动 222.77.201.* 福建省莆田市电信 222.77.204.* 福建省莆田市电信 222.77.205.* 福建省莆田市电信 222.77.206.* 福建省莆田市电信 222.77.207.* 福建省莆田市电信 222.77.212.* 福建省莆田市电信 222.77.213.* 福建省莆田市电信 222.77.214.* 福建省莆田市电信 222.77.215.* 福建省莆田市电信 222.77.218.* 福建省莆田市电信 222.77.224.* 福建省莆田市电信 222.77.225.* 福建省莆田市电信 222.77.226.* 福建省厦门市电信 222.77.227.* 福建省莆田市电信 222.77.228.* 福建省莆田市电信 222.77.229.* 福建省莆田市电信 222.77.246.* 福建省莆田市电信 222.77.247.* 福建省莆田市电信 27.150.196.* 福建省电信 27.150.197.* 福建省电信 27.150.198.* 福建省电信 27.150.199.* 福建省电信 27.150.210.* 福建省电信 27.150.211.* 福建省电信 27.150.220.* 福建省电信 27.150.221.* 福建省电信 27.150.222.* 福建省电信 27.150.223.* 福建省电信 27.150.228.* 福建省电信 27.150.229.* 福建省电信 27.150.230.* 福建省电信 27.150.231.* 福建省电信 27.150.240.* 福建省电信 27.150.241.* 福建省电信 27.150.242.* 福建省电信 27.150.245.* 福建省电信 27.150.246.* 福建省电信 27.153.128.* 福建省泉州市电信 27.153.134.* 福建省泉州市电信 27.153.160.* 福建省泉州市电信 27.153.161.* 福建省泉州市电信 27.153.162.* 福建省泉州市电信 27.153.163.* 福建省泉州市电信 27.153.184.* 福建省泉州市电信 27.153.185.* 福建省泉州市电信 27.153.186.* 福建省泉州市电信 27.153.187.* 福建省泉州市电信 27.153.204.* 福建省莆田市电信 27.153.205.* 福建省莆田市电信 27.153.206.* 福建省莆田市电信 27.153.207.* 福建省莆田市电信 27.153.208.* 福建省莆田市电信 27.153.209.* 福建省莆田市电信 27.153.210.* 福建省莆田市电信 27.153.211.* 福建省莆田市电信 27.153.216.* 福建省莆田市电信 27.153.217.* 福建省莆田市电信 27.153.218.* 福建省莆田市电信 27.153.219.* 福建省莆田市电信 27.153.228.* 福建省莆田市电信 27.153.229.* 福建省莆田市电信 27.153.232.* 福建省莆田市电信 27.153.233.* 福建省莆田市电信 27.153.234.* 福建省莆田市电信 27.153.235.* 福建省莆田市电信 27.153.248.* 福建省莆田市电信 27.153.249.* 福建省莆田市电信 27.153.250.* 福建省莆田市电信 27.153.251.* 福建省莆田市电信 27.159.192.* 福建省莆田市电信 27.159.193.* 福建省莆田市电信 27.159.194.* 福建省莆田市电信 27.159.196.* 福建省莆田市电信 27.159.197.* 福建省莆田市电信 27.159.199.* 福建省莆田市电信 27.159.200.* 福建省莆田市电信 27.159.201.* 福建省莆田市电信 27.159.203.* 福建省莆田市电信 27.159.207.* 福建省莆田市电信 27.159.208.* 福建省莆田市电信 27.159.209.* 福建省莆田市电信 27.159.210.* 福建省莆田市电信 27.159.211.* 福建省莆田市电信 27.159.213.* 福建省莆田市电信 27.159.214.* 福建省莆田市电信 27.159.228.* 福建省莆田市电信 27.159.229.* 福建省莆田市电信 27.159.230.* 福建省莆田市电信 27.159.231.* 福建省莆田市电信 27.159.232.* 福建省莆田市电信 27.159.233.* 福建省莆田市电信 27.159.234.* 福建省莆田市电信 27.159.235.* 福建省莆田市电信 27.159.236.* 福建省莆田市电信 27.159.237.* 福建省莆田市电信 27.159.238.* 福建省莆田市电信 27.159.239.* 福建省莆田市电信 27.159.252.* 福建省莆田市电信 27.159.253.* 福建省莆田市电信 27.159.254.* 福建省莆田市电信 27.159.255.* 福建省莆田市电信 41.78.26.* 肯尼亚 CZ88.NET 50.97.43.* 美国德克萨斯州达拉斯市SoftLayer科技公司 58.180.45.* 韩国 CZ88.NET 58.20.223.* 湖南省株洲市联通 59.57.168.* 福建省厦门市电信 59.58.115.* 福建省莆田市电信 59.58.136.* 福建省莆田市电信 59.58.137.* 福建省莆田市电信 59.58.138.* 福建省莆田市电信 59.58.139.* 福建省莆田市电信 59.58.148.* 福建省莆田市电信 59.58.149.* 福建省莆田市电信 59.58.154.* 福建省莆田市电信 59.58.155.* 福建省莆田市电信 59.58.156.* 福建省莆田市电信 59.58.157.* 福建省莆田市电信 59.58.158.* 福建省莆田市电信 59.58.159.* 福建省莆田市电信 59.60.121.* 福建省莆田市电信 59.60.124.* 福建省莆田市电信 60.169.77.* 安徽省芜湖市电信 64.146.64.* 美国加洲 66.196.19.* 美国加州 81.252.151.* 法国 CZ88.NET 85.109.120.* 土耳其电信 88.159.123.* 荷兰 CZ88.NET 89.165.56.* 伊朗 CZ88.NET 95.168.196.* 捷克 CZ88.NET |
一个有趣的现象,这其中有大量的来自福建莆田的IP,在网上搜索垃圾评论的话,也会发现很多也都来源于类似的IP段。这些人为了利益,大量消耗别人网站的资源,实在是令人厌恶。
要屏蔽掉这些垃圾评论的访问,比较彻底的方法可以设置IP地址规则,拒绝以上这些IP地址段的访问,例如在.htaccess文件中加入拒绝访问的IP地址清单:
order allow,deny deny from 110.82.132 deny from 117.26.116 allow from all |
但这样做的副作用也很明显,会误伤这个区域的正常访问用户。所以另外一种限制思路就是不拒绝访问,但是限制垃圾评论的提交,减轻Akismet的工作负担。
这些垃圾评论大多不是通过页面表单提交,而是机器人的代码访问,有一种方法是修改提交评论的PHP文件“wp-comments-post.php”的文件名和相关调用代码,让机器人无法自动提交评论。
另一种方法是在评论内容当中增加关键词规则限制,例如有的限制不允许使用纯英文评论,以此来屏蔽大部分只有纯英文的垃圾评论。我的网站由于也会有一部分来自国外的访问用户,因此使用这种限制方式并不太妥当,因此采用了另外一种限制方法:不允许评论当中出现一次以上的网址或链接。由于垃圾评论中大绝大部分都会带上大量的网址链接,因此这种规则虽然不能保证全面覆盖,但也至少可以禁绝一大部分垃圾评论。
具体的设置方法是在主题中找到Functions.php,在其中加入以下代码:
function filter_comment_post( $incoming_comment ) { $pattern_link = '/http:\/\//is'; if( preg_match_all($pattern_link, $incoming_comment['comment_content'] , $aa) >1) { wp_die( "评论中禁止出现1个以上的网址" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'filter_comment_post'); |
过滤器设置好以后,新增垃圾评论的数量下降明显,一天下来只有7条漏网(在此之前日均1500条),看来已经起作用了。后续继续观察一段时间再来谈谈效果。
一条评论
看来效果很明显,我的已经加上了,期待中!