Loading... > 前言 > 有一个wp网站 我在另外一台服务器上搭建了一个wp的小站点,收集分享一些文章 由于是非盈利性质,所以一年半载的不登录后台去看一下 > 发现问题 但是,由于本人在互联网初期做项目吃过很多亏,相对比较谨慎一些,所以喜欢在服务器上挂一些自己写的程序用来监控各种指标并作出处理或报警,当然用处可能不是很大 但就是因为写了个程序给我自己发微信通知提示我某站点数据库记录数增长异常,我就去后台看了一下 > 问题 -> 灌水评论 映入眼帘的就是多达数十万条的待审核评论,里面内容全是各种链接乱七八糟的,我第一反应就是xss和黑链 seo了什么乱七八糟的东西,顿感不妙 > 解决问题 -> 删评论 我立马去数据库里面把所有待审核评论都删掉 sql语句如下 1. 删除待审核评论,垃圾评论,回收站评论delete `From 'wp_comments' WHERE 'cooment_approved' NOT LIKE '1'` 2. 只删除待审评论delete `From 'wp_comments' WHERE 'cooment_approved' ='0'` 3. 只删除垃圾评论delete `From 'wp_comments' WHERE 'cooment_approved'='spam'` 4. 只删除回收站评论delete `From 'wp_comments' WHERE 'cooment_approved'='trash'` > 解决问题 -> 修改后台地址 然后去修改了一下后台地址 > 解决问题 -> 对比网站源码和之前差异 对比了一下代码 除了静态文件没有太大差异 都是插件, 但往往一些问题就在这些不起眼的文件夹内,我直接所幸把文件直接替换回之前的源码,反正服务器上没有其它站点影响也不大 ( 其实这里解决方案有很多种也很繁琐,具体看自己,如果被渗透或者拿到权限什么的其实替换源码已经没作用了,估计在别的地方拿到权限了已经,推荐重装下服务器,我反正重装了一下 ) > 思考问题 -> 为什么会有灌水评论? 其实这是一个几十年的老问题了,我虽然不是一个新站长,但是出现这种问题只有一个原因,就是懒 灌水评论往往夹杂着xss攻击,外链,广告等一些内容,这是一条产业链,当你的网站可以被一个人进行灌水评论攻击的时候,往往很快就会被更多人搞 所以一开始做处理才是最好的方案,但是现阶段很少有人会出现被灌水评论带来困扰,我为什么会如此长篇大论呢? > 问题不单一 因为我发现问题并不单一,我一开始搭建网站的时候就设置了所有人的评论全部进入待审核列表,那么还进行无限的评论只有一个原因,就是xss攻击和sql注入,但是理论上来讲,又不应该一直灌水,拿到与否都应该停止,防止被发现才对 **所以应该是发现该站点无人管理,且又有别的可以利用的点** > 新的问题在哪? 毕竟都是在用代理ip进行提交数据,我想代理ip再便宜也不能免费,所以这些人不会做没有意义的事情,那么到底是什么导致的他们一直灌水呢? > CDN缓存和待审核冲突之下产生的BUG 好奇心驱使之下我打开了一篇他们灌水的文章 我发现在网站最下面显赫的一条评论 就是他们灌水的评论,我心想不是删除了吗? 怎么会还在这里 而且是待审核? 待审核我是看不到的,这是什么个情况??? 一连串的问号下来我想起来一个问题, **CDN**缓存 我网站有CDN且设置了缓存,设置的HTML缓存时效比如是一个月 那么我发布文章后,肯定是我首先打开这个文章,我看完文章后,比如今天是3.28号,那么4.28前,所有人访问这个页面都将是拉取的我同步到CDN的缓存界面,那么也就是说 如果 我使用API进行提交数据 压根没有进行访问这个页面 , 提交完数据后 在4.28后 提交完数据访问一下 后面的用户就会显示这些待审核的评论,也就是意味着待审核功能失效,那么他一直灌水的初步目的也就达到了 恍然大悟,原来网站被人搞了那么久还不知道,傻乎乎的还以为待审核能有用 > 解决方案 -> 安装防灌水插件,修改CDN缓存时间,等 首先安装个防灌水插件Akismet 然后给评论的API地址抓一下 放到CDN的高级防护里面加个策略 这样下来这些垃圾评论应该就不会被CDN缓存到了,wp可能是出于seo考虑把评论同步显示出来并没有异步处理,所以会和CDN造成冲突,导致一些不法分子钻了漏子 这样一想,问题其实并不单一,很多地方都能触发这种缓存造成的问题,比如一些get参数改变页面数据等 解决办法很多种,调整或者关闭CDN中HTML后缀的缓存时间,或者使用预热功能,我还没用过这个功能,待会可能要尝试下了,具体要怎么做 刷到并看完这篇文章的同学可以根据自己的项目进行判断 最后修改:2023 年 03 月 28 日 © 允许规范转载 打赏 赞赏作者 微信 赞 3 如果觉得我的文章对你有用,请随意赞赏