本文档旨在适用于使用WordPress开发且不与用户交互的Web应用程序。主要适用于企业品牌页面、各类静态视图、招聘页面及类似网站。
对于用户注册并自由使用网站的开放社区等场景,本文档中的某些项目可能不适用。请在阅读时牢记这一点。
本文档不包含确保WordPress安全所需的全部内容。
但是,它包含了一般性和详细的信息,达到了可以根据指南进行安全风险评估和漏洞响应的程度。
如果您觉得有帮助,请点击 "star"🌟 以支持进一步改进。
安装 WordPress 时,除非在设置过程中更改,否则默认管理员用户名为 "admin"。 "admin" 账户名称广为人知,因此应更改为其他名称。 如果继续使用 "admin" 作为管理员用户名,攻击者可能会尝试使用 "admin" 进行暴力破解攻击,从而访问您的 WordPress 网站。
如果攻击者获得 WordPress 管理员账户的访问权限,他们将拥有对网站的完全控制权。 默认的 WordPress 管理员用户名应更改为其他名称。
审计:
修复:
注意:
默认情况下,WordPress 有五个用户角色——"管理员"、"编辑"、"作者"、"贡献者"、"订阅者"
这些角色允许您通过分配适当的权限来控制用户可以在网站上执行哪些任务。 如果用户角色和权限未妥善管理,用户可能会获得对关键功能的不必要访问权限,从而带来重大安全风险。
审计:
修复:
| 序号 | 角色 | 描述 | 管理职员 |
|---|---|---|---|
| 1 | 管理员 | 拥有所有 WordPress 功能的完全访问权限,可以管理网站上的所有内容。 | 系统管理员 |
| 2 | 编辑 | 可以管理和发布其他用户的文章,也可以编辑和发布内容。 | 运营服务经理、内部内容贡献者 |
| 3 | 作者 | 可以撰写和发布自己的文章,并有权编辑自己的文章。 | 内部内容贡献者 |
| 4 | 贡献者 | 可以撰写内容但不能发布。文章需由管理员审核并发布。 | 内部内容贡献者 |
| 5 | 订阅者 | 可以登录网站并管理个人资料,但不能撰写或编辑内容。 | 内部内容贡献者 |
注意:
WordPress 包含一个内置的用户注册功能。此功能默认禁用,但管理员可以激活。
如果启用此功能,任何人都可以注册并可能访问 WordPress 管理面板,这可能导致安全问题。 对于大多数并非作为开放社区运营的网站,用户注册功能是不必要的,应保持禁用。
审计:
使用 Web 浏览器

使用 curl
(response) HTTP/1.1 302 Moved Temporarily cache-control: no-cache, no-store, must-revalidate, max-age=0 content-type: text/html; charset=UTF-8 server: Apache content-length: 0 ... location: https://yourwordpress.com/wp-login.php?registration=disabled
**修复措施:**
- 如果启用了用户注册,请将其禁用。
- 取消勾选“任何人都可以注册”

## 4. 确保插件文件编辑器已禁用
如果攻击者入侵了WordPress管理员账户,他们就可以完全控制你的网站。
他们可以通过内置的“编辑器”功能编辑主题和插件的代码,上传恶意脚本、篡改网站、向用户发送垃圾邮件等。
通过这些编辑器进行的常见攻击包括SQL注入、SEO垃圾邮件攻击和日本SEO垃圾邮件。
**审计:**
- 确认文件编辑器已禁用。
- 检查是否可以通过外观 > 编辑器或插件 > 插件编辑器访问编辑器。
**修复措施:**
- 如果文件编辑器已启用,请按以下步骤禁用它:
1. 使用文件管理器或FTP访问你的wp-config.php文件。
2. 打开wp-config.php文件进行编辑。
3. 滚动到文件底部(如果使用的是默认wp-config.php)。
4. 找到以下行:
`
/* That’s all, stop editing! Happy publishing. */
`
5. 在此行上方添加以下代码:
`
define('DISALLOW_FILE_EDIT', true);
`
6. 保存更改并关闭编辑器。
7. 返回你的WordPress仪表盘,确认编辑器选项已不可用。
## 5. 确保未使用、不必要的插件已停用
WordPress的许多漏洞源于插件安全问题。
插件是开源的,这使得攻击者更容易发现和利用漏洞。
保持你使用的插件处于最新状态,并停用任何未使用的插件以防止潜在利用至关重要。
**审计:**
- 检查未使用、不必要的插件是否已停用。
- 确认未使用和不必要的插件已停用。
**修复措施:**
- 通过以下步骤停用所有未使用、不必要的插件:
**使用插件检查 - PCP:**
- PCP:https://wordpress.org/plugins/plugin-check
1. 安装并激活插件检查 (PCP):
- 进入你的WordPress管理员仪表盘
- 导航到插件 > 安装插件。
- 搜索“Plugin Check”并安装、激活。
2. 运行插件检查:
- 在WordPress仪表盘中,进入插件检查菜单。
- 选择要检查的插件并运行扫描。
3. 分析扫描结果:
- PCP将分析插件的代码并提供报告,包括:
- 代码标准合规性:插件符合WordPress编码标准的程度。
- 安全问题:潜在漏洞或恶意代码。
- 性能问题:对网站性能的影响。
- 兼容性问题:插件是否与其他插件和主题兼容。
4. 识别有问题的插件:
- 如果报告突出显示严重的安全漏洞、恶意代码或大量编码标准违规,则该插件很可能“可疑”。
- 对发出不必要外部请求或运行过多数据库查询的插件保持警惕。
5. 解决问题:
- 通过更新或在插件页面上查找问题来解决已识别的问题。
- 避免使用具有严重安全问题的插件。必要时寻找替代插件。
**插件管理:**
1. 插件选择:
- 使用官方仓库、查看评分和评论、确认开发者可信度
- 不要使用未知、未经验证的插件
2. 定期更新
- 保持插件最新,以确保拥有最新的安全补丁。
3. 停用并删除未使用的插件
- 即使是不活动的插件也可能带来安全风险,因此如果未使用,请将其删除。
- 最小化插件:仅使用必要的插件
## 6. 确保WordPress仅配置为使用HTTPS,包括WordPress管理后台
如今,大多数网站都配置为通过SSL(HTTPS)运行。
然而,一些Web服务器可能仍然错误地设置为同时处理HTTP和HTTPS连接。
这可能导致通过两种协议访问WordPress,存在安全风险。应强制WordPress(包括WordPress管理后台)仅使用HTTPS。
**审计:**
- 确认WordPress(包括WordPress管理后台)已配置为仅通过HTTPS访问。
- 检查Web服务器的VirtualHost配置,确保没有设置HTTP VirtualHost。
**修复措施:**
- 如果HTTP访问可用,首先检查并修改Web服务器设置。
- 如果服务器有HTTP VirtualHost,将其重定向到HTTPS或删除HTTP VirtualHost。
- 必要时,启用“FORCE_SSL_ADMIN”功能,强制WordPress管理后台使用HTTPS访问。