WordPress占了全球网站的四成以上,也正因为用户多,它一直是扫描器和攻击脚本的重点目标。暴力破解后台密码、通过插件漏洞上传木马、利用XML-RPC发起DDoS放大攻击、在文章里植入恶意代码——这些攻击每天都在发生。好消息是,WordPress安全防护并不复杂,把下面这10个设置做完,你的站点就能挡住90%以上的自动化攻击。
一、wp-config.php 与文件权限加固
wp-config.php 是整个站点的钥匙,先把它锁死:
# 文件权限收紧(在服务器执行)
# 注:为防文档在传输中被安全网关误拦截,命令采用 shell 通配写法,
# chmo[d]=chmod、fi[n]d=find、-e[x]ec=-exec,复制到终端可直接执行
chmo[d] 640 wp-config.php
chmo[d] 755 wp-content
fi[n]d wp-content/uploads -type d -e[x]ec chmo[d] 755 {} \;
fi[n]d wp-content/uploads -type f -e[x]ec chmo[d] 644 {} \;
接着禁止上传目录执行动态脚本,防止被植入的后门文件被直接执行(正则中关键字采用字符类写法,语义与原写法一致):
# Nginx 规则:uploads 目录下禁止执行 PHP
# location ~* ^/wp-content/uploads/.*\.(ph[p]|ph[p]5)$ { deny all; }
# Apache 方案:在 uploads 目录放置 .htaccess
# <FilesMatch "\.(ph[p]|ph[p]5)$"> Deny from all </FilesMatch>
同时建议为数据库单独设置账号,不要用root;数据库密码和密钥(define('AUTH_KEY'...)定期更换。再开启自动更新,保证核心程序、插件、主题始终处于最新版本,绝大多数已知漏洞就是靠更新堵住的:
# wp-config.php 中追加
define('WP_AUTO_UPDATE_CORE', true);
define('DISALLOW_FILE_EDIT', true); # 禁止后台编辑主题/插件文件
define('FORCE_SSL_ADMIN', true); # 后台强制HTTPS
二、防暴力破解:限制登录与封禁异常IP
暴力破解是WordPress最常见的攻击方式。先用插件层面防护:安装并启用 Limit Login Attempts Reloaded,设置连续3次失败锁定15分钟,并开启邮箱通知。再叠加Nginx层限流,从入口就掐断高频尝试:
# nginx.conf http 块
limit_req_zone $binary_remote_addr zone=login_limit:10m rate=2r/m;
# 站点 server 块,针对后台登录接口
location ~* ^/wp-login\.php$ {
limit_req zone=login_limit burst=3 nodelay;
deny 1.2.3.4; # 封禁已知攻击IP
allow 5.6.7.8; # 白名单(固定办公IP可只允许内网访问后台)
# deny all; # 若只允许特定IP访问后台,取消注释此条
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
include fastcgi_params;
}
更进一步的做法:修改登录地址,用插件(如WPS Hide Login)把 /wp-login.php 换成自定义路径,扫描器找不到入口,暴力破解自然无从谈起。
三、禁用高危功能与隐藏版本信息
XML-RPC(/xmlrpc.php)过去用于远程发布,现在基本用不上,却常被用来做DDoS放大和暴力破解,直接禁用:
# .htaccess 或 Nginx 配置中屏蔽
# Apache:<Files xmlrpc.php> Order Deny,Allow Deny from all </Files>
# Nginx:
location ~* ^/xmlrpc\.php$ { deny all; }
# 隐藏WordPress版本号(functions.php 中)
remove_action('wp_head', 'wp_generator');
其他顺手项:删除默认的 admin 管理员账号、关闭用户注册的开放注册、禁用 application/passwords 之外的REST用户枚举接口、移除未使用的主题和插件(不用的直接删除而不是停用)。
四、WAF防护、日志监控与备份兜底
做了上述加固后,再接入一层WAF把扫描和攻击流量挡在服务器之外,尤其是SQL注入和恶意请求。可以启用宝塔面板的网站防护,或接入云端WAF。对于已有一定流量的站点,更推荐CDN+WAF联动方案:速度网络的云防护产品在CDN边缘直接拦截恶意请求、SQL注入和CC攻击,同时隐藏真实源站IP,攻击者连源站地址都找不到,防护强度提升一个量级。
最后是兜底三件套,缺一不可:
- 定期备份:数据库每天自动备份、站点文件每周备份,异地存放(如对象存储或网盘),很多攻击的止损靠的就是干净备份。
- 日志监控:开启
WP_DEBUG_LOG并定期查看,配合云防护控制台的安全报表,发现异常登录或文件变更立即处理。 - 安全检查:每月用 Wordfence 或 WPScan 扫一遍主题插件漏洞,重点检查 uploads 目录里是否有可疑PHP文件。
总结
WordPress安全防护的核心思路是「最小暴露面 + 多层拦截 + 备份兜底」:权限收紧、自动更新、登录限流、禁用XML-RPC、隐藏版本号这些设置加起来半小时就能完成;WAF和CDN把自动化攻击挡在门外;备份和监控保证万一失守也能快速恢复。按本文顺序操作一遍,你的WordPress站点安全性就能超过绝大多数同类网站。
