注:我是小C,文中加粗斜体的字是在Ray写完文章后我加上的
为什么圈圈转了如此之久博客还没有加载出来,为什么首页 100 kb 不到的大小需要加载长达 4 s ,为什么加了腾讯云 CDN 速度不增反减?这背后究竟是人性的扭曲,还是道德的沦丧?敬请收看本期 《博客踩坑记》 Ⅰ 。
Ⅰ. 迟迟加载不出来的博客
或许你会发现,从不知道什么时候开始,本站的访问就变得非常的慢。慢到什么程度呢?就是你如果有缓存,那么要加载 1 秒,如果没有,那么你需要加载 4 秒或更久。
起初,我也不是很在意这个问题,毕竟之前罗里吧嗦各种配置也是瞎配置的。但是, LittleC 他不这么想,他认为博客速度这么慢真是太让人生气了,所以他开始对我的博客进行优化…
Ⅱ. CDN 风波(上)
刚开始 LittleC 是从 CDN 的配置入手的。因为我害怕被攻击,所以 CDN 各项设置的值都设置的比较小,LittleC 见状对博客的 CDN 进行了全部重新配置(按照他的博客 CDN 配置),但没有效果。
难道不是 CDN 的问题?可是经过测试发现如果直连本博客会比 CDN 的速度更快,这是为什么呢?
LittleC 很不解,并将这个问题抛给了我,但我也很不解。
Ⅲ. 优化宝塔面板设置
LittleC 这次想从服务器这里入手,检查是不是有什么不对劲的地方。当他打开面板,没错,映入眼帘的是一堆花里胡哨、乱七八糟的配置——这都是我之前瞎配置的。
尽管是瞎配置,我也对各项进行了精心优化,所以 LittleC 最终也没有实质性进展。
Ⅳ. CDN 风波(下)
于是从 LittleC 尽他所能完成全部他能做的事情之后,他开始转变方向,而是踏上了这条路:
他年复一年(还没到一年)日复一日的提醒着我,提醒到我厌烦——我也不知道怎么办嘛。终于在今天( 2020.1.19 ),我决定解决博客慢的问题。(然而,在你上学偶然回来时我就催过你,你咕了!)
我先和他讨论了缓慢会不会是由 域名解析、WordPress 本身等问题引起的,但很快被他否决了。
我决定再次从 CDN 问题入手,截了上面两张对比图后,我决定——发 工 单。
什么?! 居然设置了不让 CDN 进行缓存?那加和没加有什么区别?!
所以,我们又开始对文件进行排查,看看这个到底是谁设置的。
我们首先检查了一遍插件(全部启停),但时间没有很大变化。
接着,我们又把重心放到了主题文件上,这次,却有了大发现。
博客惊现后门文件,而他又是何人所谓?禁止缓存头部到底是哪里加的,为何真凶仍迟迟不肯现身!
Ⅴ. 杀毒
在博客主题文件的 Function.php (???)中,居然存在以下代码,对其开头部分进行 Google 搜索,结果让人大跌眼镜:
什么,我的博客居然被植入了后门!!!
这怎么可能!难道是密码不安全吗!
我又对其进行了更加深入的了解,原来他是—— Wp-Vcd 病毒!
“ wp-vcd 最初由意大利安全研究员曼 Manuel D’Orso 在今年夏天发现, wp-vcd 的初始版本通过一个名为“wp-vcd.php”文件将恶意代码注入到 WordPress 核心文件中,比如 functions.php 和 class.wp.php 。 ”
这真是太恐怖了!但是我们对其研究发现,这段恶意代码其中的链接已经失效,所以造成速度拖慢的原因是请求了一个不存在的网站!
你随后可以在本文末尾阅读恶意代码。
Ⅵ. 寻找设置缓存头的脚本
在处理完恶意脚本后,LittleC 随即开始了对缓存头的排查。首先他使用了肉眼排查法,但是没有成效,接着他使用了“全局搜索”法,但是也没有嫌疑文件:
但是 LittleC 不懈努力,最后居然在这个文件中找到了那串该死的代码——
插件 ludou-phone-register
这是本站注册中手机号码验证所使用的插件,但是他已经不是原本的插件了。
他经过我的改造后,适应了腾讯云的 SMS 发码,所以他变成了
ray-phone-register
经过好几次的控制变量法研究,发现是一开始的session_start搞的鬼,但是文档中并没有提到会加入这个头(也可能我没看到),在翻阅php源码后找到了这件事的真凶 :
Isn’t it amazing?
这段代码(session_start)是我放上去的。由于一些错误的判断写法,导致session_start会被调用。
Oh ,真是该死。
那么,细心的读者可能会问了,为什么刚才的全局插件启停没有排查到这一点呢?
原因是——拖慢速度的真凶不是不缓存,因为服务器在国内直连也是很快的,而是恶意代码请求无效的网站才拖慢了速度。
那么,更加细心的读者可能还会问,为什么刚才使用“全局搜索”法没有排查出这里呢?
参见: 这个链接。
Ⅶ. 尾声
至此,博客访问慢的问题已经全部解决,其原因由以下两点:
- 博客被植入了恶意代码。
- 我的憨批代码中增加了禁止缓存头。
关于为什么会被植入恶意代码,网上有观点说:
在 Twenty-xxx 主题中有漏洞,而这个漏洞则被利用来散播这个恶意代码。
凑巧,我在 WP 的更新中获得了 Twenty-ninth 主题,并用了一段时间。
这么看来,这可能就是我被植入恶意代码的原因。
所以如果你也有这个主题,还不去看看你的主题 Function.php 中有没有被植入恶意代码?
另外,现在我第一次访问的加载速度已经在 1s 以内了,你呢?
“文章末尾”
0 评论