WordPress 网站安全防护应该从哪些地方下手?
WordPress 安全防护不能只靠装一个安全插件。它更像给房子上锁:门锁、窗户、监控、备份和逃生通道都要有,少一层都可能在真正出事时暴露短板。实际项目里最稳的做法是先降低被打穿的概率,再降低被打穿后的损失,最后保证能恢复。核心动作包括及时更新、收紧登录入口、限制后台危险能力、保护敏感文件、配置 HTTPS、做可恢复备份,并持续观察异常日志。
追问
更新核心、主题和插件为什么是第一优先级?
大多数 WordPress 入侵不是黑客临场写了多高深的漏洞,而是扫到了旧插件、旧主题或弱口令。核心、主题和插件都应该开启可控更新,至少安全补丁不要长期拖着,因为公开漏洞一旦被收录进扫描器,攻击成本会非常低。取舍在于,生产站不建议所有插件无脑自动升级,特别是电商、会员和支付插件,最好先在预发环境验证兼容性。
bashwp core update wp plugin update --all wp theme update --all wp plugin list --fields=name,status,update,version
登录入口应该怎么防暴力破解?
管理员账号要使用强密码和双因素认证,默认 admin 用户名最好删除或降权,不要把作者归档页暴露出的登录名直接当后台账号。登录尝试次数也要限制,可以用 Wordfence、Limit Login Attempts Reloaded,或者在反向代理层对 /wp-login.php 和 /xmlrpc.php 做限速。边界在于,隐藏后台地址只能减少噪音,不能替代密码策略和 2FA。
wp-config.php 里哪些配置值得加?
wp-config.php 应该配置唯一的 salts、安全开关、调试日志策略和文件编辑限制。生产环境建议禁用后台文件编辑,避免管理员账号被盗后攻击者直接在主题编辑器里写 WebShell。取舍是 DISALLOW_FILE_MODS 会禁止后台安装和更新插件,适合由 CI/CD 发布的站点,不适合完全依赖后台维护的小站。
phpdefine('DISALLOW_FILE_EDIT', true); define('FORCE_SSL_ADMIN', true); define('WP_DEBUG', false);
XML-RPC、REST API 和文件权限要不要全部禁掉?
XML-RPC 如果没有 Jetpack、移动端发布或旧客户端需求,通常可以关闭或至少限制访问。REST API 不能简单一刀切,很多区块编辑器和插件都依赖它,更合理的是给敏感端点加 permission_callback。文件权限方面,目录常见为 755,文件为 644,上传目录不应允许执行 PHP。
apache<FilesMatch "\.php$"> Require all denied </FilesMatch>
备份和监控为什么也算安全措施?
安全的目标不是保证永远不出事,而是出事后能知道、能定位、能恢复。数据库和 wp-content 至少要异地备份,并定期做恢复演练,否则备份文件损坏时才发现就太晚了。监控日志时重点看异常登录、未知管理员、插件文件改动、可疑 404 扫描和突然增多的 POST 请求。