为什么WordPress面对404攻击会如此脆弱
2016-09-08
要弄清楚这个问题,首先要明白Wordpress的工作原理。
安装Wordpress系统时Wordpress自动添加的配置。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
从配置可以看出,所有的用户请求都会转向给index.php文件处理,这个index.php会做哪些事情呢?它会分析用户请求的url的结构模式/组成部分,判断是什么类型的请求(post,page,tag, catagory,archive等),分析出请求目标后,Wordpress会到缓存里找这些资源,如果找到了,就返回用户。如何缓存里没有找到,它就会到数据库里寻找,然后用PHP引擎生成相应的页面资源。
如果用户请求的是一个不存在的404资源呢?那么,Wordpress的执行过程一步都没有少:先找缓存,在找数据库,数据库还是没有,生成404页面。
在这里我们就会发现,对于所有的404请求,缓存里必然没有,Wordpress每一次都会到数据库里全库搜索。这是一个非常消耗数据库服务器和web服务器性能的操作。大量的404查询比如对服务器产生严重的影响。
使用Wordpress作为内容管理系统的站长都知道一种必须要有的插件,就是缓存插件。最著名的一个缓存插件是W3 Total Cache,在W3 Total Cache里面有一个选项能部分的解决这个问题:
广告 您可能关注的内容 |