📢前言
WordPress 确实好用,全球 40%+ 的网站都在用它。但这也意味着——它是黑客最喜欢"光顾"的目标。我每天查看服务器日志,都能看到来自世界各地的扫描请求,它们 24 小时不间断地在找漏洞、试密码。
特别是做外贸的 B2B 站点,客户询盘数据、邮箱信息都在里面,一旦被黑,损失的不只是数据,还有客户对你的信任。我自己就踩过坑,有一次客户网站被挂了黑链,Google 直接给标红,询盘直接归零,那个月真是焦头烂额。
这篇文章不讲虚的,都是我自己和团队这几年实战踩坑总结出来的,直接照着做就行。
🔥 一、你的网站每天都在经历什么
在动手加固之前,先搞清楚敌人是谁。
| 威胁类型 | 攻击方式 | 真实危害 | 发生频率 |
|---|---|---|---|
| 暴力破解(Brute Force) | 工具自动试各种密码组合 | 账户被盗,网站被接管 | 每分钟都在发生 |
| 恶意插件/主题 | 从淘宝/论坛下的"破解版"插件 | 后门植入、数据被窃取 | 常见,屡禁不止 |
| 过时组件漏洞 | 插件、主题、WordPress 核心没更新 | 服务器权限被获取 | 非常高 |
| SQL 注入 | 通过表单注入恶意 SQL 代码 | 数据库被篡改或窃取 | 中等(看插件质量) |
| XSS 攻击 | 在评论区注入恶意脚本 | 访客信息被盗 | 中等 |
| DDoS 攻击 | 大量请求把服务器打宕机 | 网站完全打不开 | 偶尔会遇到 |
| 零日漏洞 | 漏洞刚被发现还没补丁 | 取决于严重程度 | 少但危险 |
⚠️ 被黑之后有多惨?我亲眼见过
| 后果 | 实际影响 |
|---|---|
| 客户数据泄露 | GDPR 罚款 + 品牌信誉损失,严重的被告上法庭 |
| 网站被挂黑链 | Google 检测到恶意软件,搜索排名直接掉没 |
| 首页被篡改 | 客户打开看到你卖"伟哥",询盘直接归零 |
| 被 Google 列入黑名单 | Chrome 对所有访客显示红色警告 |
| 服务器被植入挖矿程序 | 网站卡成狗,主机商可能直接封号 |
🔐 二、账户安全:最容易被突破的薄弱环节
2.1 密码是第一道防线,但很多客户都踩坑
我见过太多这样的密码:123456、admin888、公司名称123。说实话,这种密码用暴力破解工具,几秒钟就搞定了。
| 密码强度 | 示例 | 被破解时间(普通电脑) |
|---|---|---|
| 弱 | 123456 | 不到 1 秒 |
| 一般 | password123 | 几秒钟 |
| 好 | M7x@P@ssw0rd! | 几百年 |
| 最强 | 密码管理器生成的随机串 | 几万年 |
🛠️ 我的建议:
- 用 Bitwarden(免费开源)、1Password 这类密码管理器
- 让它们帮你生成 20 位以上的随机密码
- 再也不用费劲记密码,还能在不同设备同步
2.2 改掉默认的 admin 用户名
WordPress 安装时默认的管理员用户名是 admin——这简直是黑客的"靶子"。他们第一个试的就是这个。
📋 修改步骤:
- 进入 用户 > 所有用户,看看有没有
admin账户 - 新建一个管理员账户:用户名用自己的名字(或拼音),邮箱写真实的
- 用新账户登录 WordPress
- 删除原来的
admin账户(系统会提示把内容转给新用户)
💡 懒人方法:装个 Username Changer 插件,不用重建账户,直接改用户名,省事。
2.3 把登录地址藏起来
默认的 WordPress 登录地址 /wp-admin 和 /wp-login.php,全世界黑客都知道。把这个入口藏起来,能挡住 80% 以上的自动化攻击。
📦 推荐插件:WPS Hide Login
- 安装并启用 WPS Hide Login
- 进入 设置 > 常规,拉到最下面
- 在 Login url 填个自定义路径,比如
/my-login或/access - 保存
- ⚠️ 一定要把新登录地址记好(存在密码管理器里),忘了的话只能通过 FTP 进服务器重命名插件文件夹来恢复
💡 我的经验:新登录 URL 别太奇怪,比如
/-admin/就比/wp-admin-secure-2026/更低调,攻击者的扫描字典里不会收录这种奇怪的地址。
2.4 限制登录尝试次数
正常人不会连续输错 5 次密码——如果有人这么做,99% 是攻击者在暴力破解。
📦 推荐插件:Limit Login Attempts Reloaded
配置建议:
| 设置项 | 推荐值 | 说明 |
|---|---|---|
| 允许登录尝试次数 | 3-5 次 | 正常用户输错 2 次就该警觉了 |
| 锁定时间 | 30 分钟 | 输错 3 次后锁半小时 |
| 锁定通知 | ✅ 开启(邮件通知) | 有人攻击时你能收到提醒 |
| 无限次解锁 | ❌ 关闭 | 让攻击者自然失效 |
🛡️ 三、防火墙配置:你的"保安"系统
防火墙就像是网站的大门保安——把坏人挡在外面,而不是等你被偷了再去追查。
3.1 Wordfence 防火墙设置
Wordfence 是我用得最多的安全插件,功能全还免费。
📦 安装:插件 > 安装插件 > 搜索 Wordfence Security > 安装并启用。
🔧 启用防火墙:
- 进入 Wordfence > Firewall
- 点击 All Firewall Options
- 先选 Learning Mode(学习模式)运行 3-5 天,让 Wordfence 熟悉正常访问模式
- 之后再切换到 Enabled and Protecting(正常保护模式)
✅ 推荐开启的规则:
| 规则 | 建议 | 原因 |
|---|---|---|
| 封锁发送虚假 HTTP 头的请求 | ✅ 开启 | 过滤自动化工具 |
| 封锁包含恶意 URL 的请求 | ✅ 开启 | 防止 SQL 注入/XSS |
| 封锁包含恶意查询字符串的请求 | ✅ 开启 | 同上 |
| 禁止直接访问 PHP 文件(wp-admin) | ✅ 开启 | 限制 wp-admin 目录的直接访问 |
| 防止用户名枚举 | ✅ 开启 | 防止攻击者通过 URL 猜用户名 |
| 启用 brute force 保护 | ✅ 开启 | 防止暴力破解 |
3.2 Cloudflare WAF(如果你在用 Cloudflare CDN)
如果你网站套了 Cloudflare,它自带的 WAF 相当于在外围再加一层防护。所有流量先经过 Cloudflare,有问题的在这一步就被拦掉了。
📋 推荐的 Cloudflare 防火墙规则:
| 规则名称 | 条件 | 动作 |
|---|---|---|
| 封锁高威胁 IP | 威胁评分 > 29 | 封锁 |
| 非目标国家登录质询 | URI 含登录路径且国家非目标 | JS Challenge |
| 频率限制 | 同一 IP 每分钟请求 > 50 次 | 质询 |
| 保护 wp-login | URI 含 wp-login | 质询 |
💡 我的经验:Wordfence 保护应用层(网站代码层面),Cloudflare 保护网络层(流量入口)。两者叠加效果最好,既能拦 DDoS,又能处理应用层漏洞攻击。
📁 四、文件权限配置:很多人忽略的关键点
文件权限决定谁可以读取、写入、执行服务器上的文件。权限设错了是很多安全漏洞的根源,我见过因为 uploads 目录权限 777 被植入后门的案例。
4.1 权限数字是什么意思
| 数字 | 含义 | 权限等级 |
|---|---|---|
| 777 | 所有人可读写执行 | 🔴 极度危险,永远不要用 |
| 755 | 所有者可读写执行,其他人可读执行 | 目录常用 |
| 644 | 所有者可读写,其他人只读 | 文件常用 |
| 440 / 400 | 只有所有者可读,其他人无权限 | wp-config.php 必须用这个 |
4.2 WordPress 推荐权限设置
| 路径 | 推荐权限 | 说明 |
|---|---|---|
| WordPress 根目录 | 755 | 允许目录遍历和执行 |
| wp-admin | 755 | 后台目录 |
| wp-includes | 755 | WordPress 核心文件 |
| wp-content | 755 | 用户上传和插件写入需要 |
| wp-config.php | 440 或 400 | 只读,不允许任何人写入 |
| 所有 .php 文件 | 644 | 所有者读写,其他人只读 |
| uploads 目录 | 755 | 上传图片和文件需要 |
| .htaccess | 644 | WordPress 和 Apache 用到 |
4.3 命令行批量修改权限
如果你能通过 SSH 连接服务器,用这几条命令一键搞定:
# 进入 WordPress 根目录
cd /var/www/yourdomain.com
# 所有目录设为 755
find . -type d -exec chmod 755 {} \;
# 所有文件设为 644
find . -type f -exec chmod 644 {} \;
# 单独处理 wp-config.php(最敏感的文件)
chmod 440 wp-config.php
⚠️ 注意 uploads 目录:如果图片上传不工作(提示目录不可写),临时把 uploads 改为 775,传完文件再改回 755。千万别一直 777 开着!
🚫 五、禁用这些危险功能
5.1 禁止后台文件编辑器
WordPress 自带的主题/插件文件编辑器是双刃剑——方便管理员直接改代码,但一旦账户被盗,攻击者可以直接在后台改任何 PHP 文件,植入后门。
在 wp-config.php 添加一行:
define('DISALLOW_FILE_EDIT', true);
添加后,后台的「外观 > 主题编辑器」和「插件 > 插件编辑器」会消失。如果确实需要改文件,用 SFTP/FTP 连上去操作,更安全。
5.2 禁用 XML-RPC
XML-RPC 是 WordPress 的远程 API 接口,用于移动 App、第三方工具连接,但也让暴力破解工具可以通过 pingback 接口批量试密码,效率比直接访问登录页面高得多。
Nginx 服务器禁用(推荐):
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
Apache 服务器禁用(.htaccess):
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
⚠️ 提醒:有些移动端 App 和 Jetpack 插件依赖 XML-RPC,禁用前确认你的工作流不需要这些。如果不确定,用 Disable XML-RPC 插件替代——它只禁用认证功能,保留 pingback。
5.3 隐藏 WordPress 版本信息
WordPress 默认会在 HTML <head> 中输出版本号,攻击者看到这个就知道你有没有修补已知漏洞。
在主题的 functions.php 添加:
// 移除 head 中的 WordPress 版本信息
remove_action('wp_head', 'wp_generator');
// 移除 RSS Feed 中的版本信息
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
// 移除 shortlink
remove_action('wp_head', 'wp_shortlink_wp_head');
👀 六、安全监控:不是设完就不管了
6.1 Wordfence 实时监控
装了 Wordfence 后,建议定期看看这几个数据:
| 监控项 | 频率 | 看什么 |
|---|---|---|
| 实时流量 | 偶尔 | 有没有异常的高频请求 |
| 被封锁的请求 | 每天 | 有没有人在尝试注入恶意代码 |
| 登录失败记录 | 每天 | 有没有人在暴力破解登录页面 |
| 扫描结果 | 每周 | 有没有新发现的可疑文件 |
6.2 定期安全检查计划
| 检查项 | 频率 | 怎么做 |
|---|---|---|
| 全站安全扫描 | 每周 | Wordfence > Scan > Start New Scan |
| 登录日志审查 | 每周 | Wordfence > Logs 看失败的登录尝试 |
| 文件完整性检查 | 每月 | Wordfence 扫描结果看"核心文件是否被修改" |
| 插件/主题更新 | 每周 | WordPress 后台 > 插件/外观 看红色提示 |
| WordPress 核心更新 | 每月 | 关注官方安全公告,优先处理安全更新 |
✅ 七、安全加固总检查清单
🔐 账户安全
- [ ] 管理员用户名不是
admin - [ ] 所有账户使用强密码(12位以上)
- [ ] 登录 URL 已修改为自定义路径
- [ ] 登录尝试次数已限制(3-5 次后锁定)
- [ ] 两步验证(2FA)已启用(管理员账户)
🛡️ 防火墙与防护
- [ ] Wordfence 防火墙已激活
- [ ] Cloudflare WAF 已配置(如使用 Cloudflare)
- [ ] XML-RPC 已禁用
- [ ] 后台文件编辑器已禁用
- [ ] WordPress 版本信息已隐藏
📁 文件安全
- [ ] 文件权限已正确设置
- [ ] wp-config.php 权限为 440 或 400
- [ ] 没有 777 权限的文件或目录
- [ ] 上传目录禁止执行 PHP 文件
👀 监控与维护
- [ ] 每周一次安全扫描
- [ ] 自动备份已配置并测试
- [ ] 所有插件和主题已更新到最新版本
- [ ] 已删除不需要的插件和主题
- [ ] 定期查看 Wordfence 登录失败记录
🚨 八、万一被黑了怎么办?别慌,按这个来
如果真的不幸被入侵,按下面步骤处理——不要慌,一步一步来:
| 步骤 | 操作 | 目的 |
|---|---|---|
| 1️⃣ | 立即启用维护模式(WP Maintenance Mode 插件),阻止访客访问被污染的页面 | 减少损害扩散 |
| 2️⃣ | 从最近的干净备份恢复(在被黑之前至少一天的备份) | 最快速的清理方式 |
| 3️⃣ | 修改所有密码:WordPress、数据库、FTP、主机面板 | 防止攻击者用旧凭据重新进入 |
| 4️⃣ | 全站安全扫描:Wordfence > Scan,深度扫描所有文件 | 找出残留的后门 |
| 5️⃣ | 更新一切:WordPress 核心、所有插件、所有主题到最新版本 | 修补可能被利用的漏洞 |
| 6️⃣ | 检查可疑文件:在 wp-content/uploads、wp-content/plugins 中查找最近修改的 PHP 文件 | 找出植入的后门 |
| 7️⃣ | 查看访问日志:找出攻击者的 IP 和攻击路径 | 了解入侵方式,堵住漏洞 |
| 8️⃣ | 提交 Google 审查:Search Console > 安全问题 > 请求审查 | 如果 Google 已标记你的站点 |
⚠️ 特别提醒:恢复备份前,确认备份是"干净"的。如果备份本身就已经被污染了,恢复完了问题还在。最好用 Wordfence 先扫描一次备份文件,确认干净再恢复。

之前就是没改admin用户名,后台被爆破了一整晚,吓得我赶紧改了。
那个WPS Hide Login插件挺好用,就是得记好新地址,我有次自己都忘了进不去后台。