
WordPress 为超过 43% 的所有网站提供支持,使其成为黑客最常针对的 CMS。大多数成功的攻击不是零日漏洞——它们利用过时的插件、弱密码和网站所有者从未更改的默认配置。本指南涵盖您现在可以采取的每个实际加固步骤。
关键数据:超过 90% 被黑的 WordPress 网站是通过过时的插件、主题或暴力登录攻击被入侵的——所有这些都可以通过本指南中的步骤来防止。
1. 保持所有内容最新
最重要的安全实践是保持 WordPress 核心、主题和插件最新。大多数更新都会修补黑客主动扫描的已知漏洞。
- 在仪表板 → 更新中为 WordPress 小版本启用自动更新
- 每周检查插件和主题——删除您不使用的那些
- 移除被破解(盗版)主题/插件——它们通常包含后门
- 订阅WPScan 漏洞数据库以获取警报
2. 保护登录页面
更改默认登录 URL
默认情况下 WordPress 登录位于/wp-login.php——每个机器人都知道这一点。使用WPS Hide Login之类的插件将其更改为自定义 URL(如/admin-portal)。
限制登录尝试
安装Limit Login Attempts Reloaded在重复失败登录后阻止 IP。推荐设置:
- 5 次失败后锁定
- 锁定期:20 分钟
- 重复锁定后更长的锁定:24 小时
启用双因素身份验证 (2FA)
使用WP 2FA或Google Authenticator插件为所有管理员账户要求基于时间的 OTP。即使您的密码泄露,攻击者也无法在没有第二个因素的情况下登录。
使用强大、唯一的密码
- 最少 16 个字符,字母、数字、符号混合
- 使用密码管理器(Bitwarden、1Password)——永远不要重复使用密码
- 将默认管理员用户名从"admin"更改为唯一的用户名
3. 保护 wp-config.php 和文件权限
wp-config.php 加固
将这些常量添加到wp-config.php以限制访问:
// 禁止从 WordPress 仪表板编辑文件
define('DISALLOW_FILE_EDIT', true);
// 禁止插件/主题安装
define('DISALLOW_FILE_MODS', true);
// 对管理强制使用 HTTPS
define('FORCE_SSL_ADMIN', true);
正确的文件权限
| 文件/目录 | 权限 |
|---|---|
wp-config.php | 600(仅所有者读/写) |
| 所有目录 | 755 |
| 所有文件 | 644 |
.htaccess | 644 |
4. 禁用 XML-RPC
XML-RPC 是旧版移动应用和 Jetpack 等工具使用的遗留 API。如果不使用它,请禁用它——它是暴力破解和 DDoS 放大攻击的常见目标。
将此添加到您的.htaccess:
# 阻止 XML-RPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
5. 安装安全插件
专门的安全插件增加多层保护:
- Wordfence Security——免费防火墙、恶意软件扫描、实时流量监控
- Sucuri Security——恶意软件扫描、活动审计日志、完整性监控
- iThemes Security——一个插件中的 30+ 个安全加固措施
安装后运行完整的恶意软件扫描。如果 Wordfence 检测到受感染的文件,它可以从原始 WordPress 存储库恢复它们。
6. 禁用 XML-RPC 并限制 REST API
XML-RPC 是每个 WordPress 安装中包含的遗留远程过程协议。攻击者将其用于暴力攻击(它允许每个请求无限登录尝试)和通过 pingback 功能的 DDoS 放大。如果不使用移动应用或 Jetpack,请完全禁用它。
将此添加到您的.htaccess:
# 完全阻止 XML-RPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
要将 REST API 限制为仅经过身份验证的用户,请将此添加到您的子主题的functions.php:
// 将 REST API 限制为已登录用户
add_filter('rest_authentication_errors', function($result) {
if (!is_user_logged_in()) {
return new WP_Error('rest_not_logged_in', '需要身份验证。', ['status' => 401]);
}
return $result;
});
注意:如果您使用 WooCommerce、Jetpack 或任何依赖 REST API 的插件,请不要在没有先测试的情况下限制它。应用前检查插件文档。
7. 加固 HTTP 安全标头
安全标头指示浏览器执行重要的安全策略,在攻击执行前阻止一类攻击——点击劫持、MIME 类型混淆和跨站脚本。将这些添加到您的.htaccess:
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set X-XSS-Protection "1; mode=block"
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
</IfModule>
| 标头 | 防护对象 |
|---|---|
X-Frame-Options: SAMEORIGIN | 点击劫持——将您的页面嵌入到恶意 iframe 中 |
X-Content-Type-Options: nosniff | MIME 嗅探——浏览器误解释文件类型 |
X-XSS-Protection | 旧版浏览器中的反射型 XSS |
Referrer-Policy | 将敏感 URL 参数泄露给第三方 |
您可以在securityheaders.com验证您的安全标头分数——目标是 A 或 A+ 评级。
8. 使用服务器级恶意软件保护
WordPress 级安全插件很重要,但服务器级保护增加了更深的一层。AsiaGB 主机包括Imunify360——一个实时防病毒和入侵防御系统 (IPS),可扫描上传的文件并自动阻止攻击 IP。
- Imunify360 实时扫描写入磁盘的 PHP 文件,在注入的恶意软件执行前捕获它
- 在服务器防火墙级别阻止暴力 IP,而不仅仅是 WordPress 级别
- 如果您怀疑遭到入侵,请使用Sucuri SiteCheck扫描您的网站以获得快速的外部恶意软件报告
- 每月审查您的 DirectAdmin 访问日志和错误日志以发现异常模式
遭到入侵的警告迹象:意外重定向、您未创建的新管理员账户、Google Search Console 关于恶意软件的警告或搜索排名突然下降。立即采取行动——从干净的备份恢复并更改所有密码。
9. 保持定期备份
即使是最强化的 WordPress 网站也可能被入侵。没有备份,恢复极其困难。使用以下工具安排每日或每周自动备份:
- UpdraftPlus——备份到 Google Drive、Dropbox 或 S3
- DirectAdmin 备份管理器——如果您在 AsiaGB 主机,请使用内置备份工具
- 每年至少测试一次您的恢复过程——无法恢复的备份是无用的
重要:始终将备份存储在离线。如果您的服务器被入侵,服务器上的备份也可能被感染或被攻击者删除。
安全加固检查清单
| 任务 | 状态 |
|---|---|
| WordPress 核心、插件、主题已更新 | ☐ |
| 登录 URL 已从 /wp-login.php 更改 | ☐ |
| 登录尝试受限 | ☐ |
| 管理员账户已启用 2FA | ☐ |
| 在 wp-config.php 中设置 DISALLOW_FILE_EDIT | ☐ |
| XML-RPC 已禁用(如果未使用) | ☐ |
| 已安装并扫描安全插件 | ☐ |
| 已计划离线备份 | ☐ |
使用 DirectAdmin 的 WordPress 主机 — 安全且快速
AsiaGB 主机包括 DirectAdmin 控制面板、一键 WordPress 安装、SSL 和自动备份。99% 正常运行时间 SLA。起价 500 泰铢/年。
查看主机方案 →