WordPress 是一个功能强大的 CMS,几乎可以通过插件和主题实现任何功能。尽管 WordPress 功能强大,但由于其动态特性,其性能很差。如果不优化的话,可能会刷新几次才会死,更不用说恶意 CC 攻击了。
WordPress 防 CC 攻击设置教程-字节智能
上一篇文章对服务器简单的防 CC 攻击设置,简单介绍了网站遇到 CC 攻击的一般解决方案,本文给出了 WordPress 全面的防 CC 攻击设置。
WordPress 的弱点
默认情况下,WordPress 不是静态的,所有请求都是动态生成然后发送的。游客少的时候,问题不大。流量上来的时候基本都是 GG,不使用缓存或者静态。因此,WordPress 性能优化最重要的一个方面是使用缓存/静态插件。
启用 cache/static 插件后,页面和文章访问一次后就会被缓存,不需要动态生成下一个请求,性能会有很大提升,低 VPS 也能轻松加载上万个 ip,非常好看。
但是对于 WordPress 的 CC 攻击,缓存远远不够,因为它致命的弱点还没有解决:WordPress 的动态性是它的弱点,弱点的弱点是搜索。文章数量是固定的,但是搜索词无止境,所以缓存对 CC 攻击没有影响。如果文章数以万计,每次搜索都非常耗费资源,再多几次搜索式 CC 攻击,WordPress 就会趴下。
总结一下:WordPress 的弱点是动态的,致命的弱点是搜索。必须解决这两个弱点才能防止(减轻)CC 攻击。
防抄送攻击设置
了解 WordPress 的弱点,然后介绍 WordPress 的防 CC 攻击设置。
1.安装缓存/静态插件,解决 WordPress 动态生成网页的弱点。本网站使用的 WordPress 超级缓存配置简单,性能良好。插件安装启用后,主要设置如下:1。选中“常规”中的“启用缓存功能(推荐)”;2.在高级中进行以下设置:
不要勾选“GET 请求不缓存”,理论上解决了搜索攻击的问题,但是会让你的网站不正常。
2.然后解决搜索的弱点。通常,与 CC 攻击预防一样,主要手段是限制请求的数量和速率。假设我们使用 Nginx,解决方案是:
在 Nginx 的主配置文件的 http 部分分配极限计数区(例如,/etc/nginx/nginx.conf):
http {
# 一些其他配置
# 增加下面三行,作用分别是:1. 分配 10MB 大小的连接数计数区(能统计 16 万个 ip);
# 2. 分配正常请求的限制区,每秒请求次数不能超过 10(请按照自己需求更改)
# 3. 分配搜索限制区,每分钟搜索不能超过 10 次
limit_conn_zone $binary_remote_addr zone=limit_conn:10m;
limit_req_zone $binary_remote_addr zone=limit_req:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=limit_req_s:10m rate=10r/m;
# 其他设置
}
打开网站配置文件(例如/etc/nginx/conf.d/tlanyan.conf),在 server 段中增加防 CC 攻击设置:
server {
# 一些其他配置
# 增加以下配置行
limit_conn limit_conn 10; # 单个 ip 的并发连接数不能超过 10(请按照自己情况修改)
limit_req zone=limit_req burst=10 nodelay; # 使用 limit_req 限制正常请求
location / {
# 注意:一定要在 location / 添加,否则后台功能可能不正常
if ($query_string ~ "s=") {
rewrite ^ /search.php?$query_string last; # 将搜索请求重定向
}
# location / 的其他设置
}
location = /search.php {
limit_req zone=limit_req_s burst=5 nodelay; # 限制搜索频率
fastcgi_pass php-fpm; # 这里请改成你 php 的设置
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
# 其他设置
}
在上面的配置中,最重要的设置以 if ($query_string ~ “s= “开头,重定向搜索,然后使用我们定制的搜索频率设置。如果超过这个搜索频率,直接 503 返回一个错误消息。
使用 nginx -t 命令检查配置错误,然后 systemctl 重新启动 Nginx 以重新启动 Nginx。
因此,由于连接数量的限制,单个 ip 不能无限期地发起到服务器的连接;通过正常请求率限制单个 ip 对普通文章页面的请求率;通过搜索限制,大大限制了搜索频率,从而有效防止 CC 攻击,提高服务器性能。
重启 Nginx 后,打开你的 WordPress 博客,搜索几次,会出现“503 服务暂时不可用”的提示,说明我们的搜索限制起作用了。
转载请注明:汇站网 » WordPress 防 CC 攻击设置教程