WordPress 网站被入侵,多数时候不是核心程序不安全,而是默认配置暴露了太多攻击入口。这篇文章整理了六个不依赖重型安全插件的加固动作:隐藏登录地址、禁止后台改文件、用 Cloudflare Security Rules 拦截扫描、开启 2FA、清理 admin 账号、保持自动备份,组合起来可以成倍降低暴力破解和后台入侵的风险。

WordPress 是全球最流行的网站系统之一,同时也成为攻击者重点扫描的目标。
很多网站被入侵,并不是因为 WordPress 本身不安全,而是因为默认配置暴露了大量攻击入口,例如:
- 默认登录地址公开
- 管理员密码容易被爆破
- 后台允许直接修改 PHP 文件
- 缺少边缘防护
- 没有备份恢复机制
对于企业官网、B2B 展示站、内容博客等类型网站,并不需要安装大量重量级安全插件。通过减少攻击面、限制后台能力、增加 Cloudflare 边缘防护,可以显著提升安全水平。
一、修改 WordPress 登录地址
WordPress 默认登录入口是 /wp-login.php,攻击机器人可以批量扫描这个路径,再尝试用户名密码爆破。用 WP Hide Login 把登录地址改成自己的路径,可以隐藏默认入口,降低自动化攻击的概率。
操作路径:WordPress 后台 → Plugins → Add New Plugin,搜索 WP Hide Login,安装并启用。然后进入 Settings → General,把 Login URL 改成自己的地址,例如 /my-secure-login/。
改完之后,攻击者扫描 /wp-login.php 时无法直接进入登录页面。
风险提示 Warning
修改登录地址不是唯一防护措施,要配合 Cloudflare、强密码和 2FA 一起用。单独隐藏登录地址只能降低自动化扫描的攻击概率,挡不住有明确目标的攻击。
二、通过 wp-config.php 禁止后台修改文件
如果攻击者拿到管理员权限,可以通过主题编辑器或插件编辑器直接写入恶意 PHP 代码。wp-config.php 里加两行配置,可以关掉这两个入口。下面以 Hostinger 的 hPanel 为例,其他服务器的文件管理逻辑相同。
- 登录 Hostinger hPanel。
- 按下面的路径进入文件管理器:
→
Files
→
File Manager
→
public_html
→
wp-config.php
- 打开网站目录 public_html,找到 wp-config.php,右键选择 Edit。
- 在文件里找到这一行:
/* That's all, stop editing! Happy publishing. */ - 在这一行之前添加下面两行配置并保存:
/* Security hardening (add here) */
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);两行配置的作用不一样:DISALLOW_FILE_EDIT 关闭后台主题和插件代码编辑,DISALLOW_FILE_MODS 禁止后台安装、删除、更新插件和主题。对大多数只需要维护内容的网站来说,插件和主题的更新可以交给托管商或 FTP 完成,关闭后台安装入口并不会影响日常使用。
这样即使管理员账号被盗,攻击者也没有办法直接在后台植入木马。
三、Cloudflare Security Rules 配置
Cloudflare 的 Security Rules 在请求到达服务器之前完成拦截,比 WordPress 层的防护更靠前。配置入口:
→
Security
→
Security Rules
→
Custom Rules
→
Create Rule
这一节配置四条规则,需要按顺序创建。第一条 Skip WAF for WordPress REST API 的 Execution Order 选 First,后面每条规则都选 Custom,并指定它在哪条规则之后执行,最终形成一个完整的防护链。
规则一:Skip WAF for WordPress REST API
如果网站使用了 AI Agent、自动发布系统或 Application Password,REST API 的请求会被 WAF 当成普通流量处理,可能出现误拦。这条规则让来自可信 IP 的 /wp-json/ 请求直接跳过 WAF 检查,保证自己的自动化流程不被 Managed Challenge 挡住。
Rule Name
Skip WAF for WordPress REST API
When Incoming Requests Match
URI Path contains “/wp-json/”
And
IP Source Address equals 你的IP地址1
Or
IP Source Address equals 你的IP地址2
Then Take Action
Skip
Log Matching Requests:Enable
WAF Components to Skip 全部勾选:
All Remaining Custom Rules、All Rate Limiting Rules、All Managed Rules、All Super Bot Fight Mode Rules、Zone Lockdown、User Agent Blocking、Browser Integrity Check、Hotlink Protection、Security Level、Rate Limiting Rules (Previous Version)、Managed Rules (Previous Version)
Execution Order
First
Status
Active
点击 Save 保存规则
规则二:保护 wp-login
登录地址隐藏之后,攻击者扫描 /wp-login.php 依然会命中默认入口。这条规则把自定义登录地址和默认入口都交给 Managed Challenge,防止暴力破解和自动扫描。
Rule Name
保护 wp-login
When Incoming Requests Match
URI Path contains “/my-secure-login/”
(my-secure-login 为演示案例,请替换为你的真实登录地址)
Or
URI Path contains “/wp-login.php”
Then Take Action
Managed Challenge
Execution Order
Select Order:Custom
Select Which Rule This Will Fire After:Skip WAF for WordPress REST API
Status
Active
点击 Save 保存规则
规则三:未授权 wp-admin 访问保护
后台目录默认拦截,但要放行已登录的管理员和正常插件请求。直接粘贴下面的表达式:
Rule Name
未授权 wp-admin 访问保护
When Incoming Requests Match
(http.request.uri.path contains "/wp-admin/")
and not (http.request.uri.path contains "/wp-admin/admin-ajax.php")
and not (http.cookie contains "wordpress_logged_in")
and not cf.client.bot表达式的逻辑:访问 wp-admin 的请求一律进入 Managed Challenge,但带登录 Cookie 的管理员、admin-ajax.php 的插件请求和 Cloudflare 确认的机器人除外。
Then Take Action
Managed Challenge
Execution Order
Select Order:Custom
Select Which Rule This Will Fire After:保护 wp-login
Status
Active
点击 Save 保存规则
规则四:拦截扫描器
针对明显漏洞扫描工具的流量直接 Block,不让它碰到服务器。直接粘贴下面的表达式:
Rule Name
拦截扫描器
When Incoming Requests Match
(http.request.uri.path contains "/wp-content/")
and (
http.user_agent contains "nikto"
or http.user_agent contains "sqlmap"
or http.user_agent contains "fuzz"
)nikto、sqlmap、fuzz 是常见的漏洞扫描工具特征,命中 /wp-content/ 目录时直接拦截。
Then Take Action
Block
Execution Order
Select Order:Custom
Select Which Rule This Will Fire After:未授权 wp-admin 访问保护
Status
Active
点击 Save 保存规则
四条规则按 Skip WAF for WordPress REST API → 保护 wp-login → 未授权 wp-admin 访问保护 → 拦截扫描器 的顺序执行,和之前写的安全响应头配置可以搭配使用,把 Cloudflare 边缘防护做完整。
四、开启双因素认证
密码泄露之后,攻击者还需要第二层验证码才能登录。安装支持 2FA 的插件,比如 Two Factor Authentication,然后用 Google Authenticator 或 Authy 这类验证器扫码绑定。
开启之后,管理员账号被盗的风险会大幅降低,密码本身泄露也不再是致命问题。
五、管理员账号不要使用 admin
攻击者爆破时优先尝试的用户名就是 admin 和 administrator。到 WordPress 后台 → Users,新建一个管理员账号并替换默认账号,然后把旧的删掉,或者直接改掉默认用户名。
这样攻击者需要同时猜测用户名和密码,爆破成本成倍提高。日常给协作者开权限时,也可以用临时登录链接,避免长期暴露管理员账号。
六、保持自动备份
任何安全措施都不能保证 100% 安全,备份是最后的恢复手段。
Pro Tip 运维小技巧
建议每天自动备份一次,保留 7-30 天历史版本。备份范围包括数据库、wp-content、主题、插件和上传文件,只备份数据库在恢复时往往不够。
很多托管商自带自动备份功能,比如 Hostinger 这类 WordPress 托管,控制面板里就能配置每日备份和一键恢复,不需要额外装插件。
发生木马、文件损坏或错误配置时,有备份就能快速恢复到正常状态。
总结
一个安全的 WordPress 网站不依赖单一插件,而是采用多层防护。把下面几层叠加起来,才能覆盖从扫描到入侵再到数据丢失的完整链条:
| 防护层 | 对应操作 | 主要作用 |
|---|---|---|
| 登录保护 | WP Hide Login + Cloudflare 规则 | 降低暴力破解和自动扫描 |
| 后台限制 | DISALLOW_FILE_EDIT / DISALLOW_FILE_MODS | 防止后台植入木马 |
| 边缘防护 | Cloudflare Security Rules | 请求到达服务器前完成拦截 |
| 身份验证 | 2FA | 密码泄露后仍有第二道锁 |
| 账号管理 | 清理默认 admin 用户名 | 提高爆破成本 |
| 数据备份 | 每日自动备份 | 快速恢复,最后兜底 |
完成这些配置后,可以显著降低暴力破解、自动扫描、后台入侵、木马植入、数据丢失这几类风险。
Key Takeaway 核心结论
对企业官网和 B2B 网站来说,这是一套轻量、高效、低维护成本的 WordPress 安全加固方案:不装一堆重量级安全插件,把攻击面收住,剩下的交给 Cloudflare 和备份兜底。
每周四送达。
主机评测、建站对比、性能优化技巧和插件推荐 — 每周为 WordPress 站长和建站者精选。
