指南 · 约 3 分钟阅读

WordPress 加固清单,附可复制粘贴的修复方法

更新最重要。在此之后,这些小改动可以堵上攻击者最先尝试的那些门。

更新于 · HackGrade

代码和配置保持英文。

1. 保持一切为最新

为插件和主题开启自动更新(插件 → 启用自动更新)。删除不用的东西:已停用的插件同样可能被利用。

2. 禁用内置的文件编辑器

添加到 wp-config.php 中/* That’s all, stop editing! */这一行的上方:

wp-config.php
define( 'DISALLOW_FILE_EDIT', true );

3. 屏蔽 XML-RPC(如果你不用它)

Jetpack 和一些移动应用会使用 XML-RPC。如果你不用,就在服务器上屏蔽它:

.htaccess
<Files "xmlrpc.php">
  Require all denied
</Files>
nginx
location = /xmlrpc.php { deny all; }

4. 不再暴露用户名

对未登录的访客隐藏 REST API 的用户列表(作为 must-use 插件放在 wp-content/mu-plugins/ 中):

PHP
<?php
add_filter( 'rest_endpoints', function ( $endpoints ) {
    if ( ! is_user_logged_in() ) {
        unset( $endpoints['/wp/v2/users'], $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    }
    return $endpoints;
} );

还要检查作者归档页(/?author=1)不会泄露登录名。把每个用户的“公开显示为”设置为与登录名不同的名称。

5. uploads 中不允许 PHP

uploads 目录只应存放媒体文件。把以下内容放进 wp-content/uploads/.htaccess:

.htaccess
<FilesMatch "\.(php|phtml|phar)$">
  Require all denied
</FilesMatch>
nginx
location ~* ^/wp-content/uploads/.*\.(php|phtml|phar)$ { deny all; }

6. 保护 wp-config.php 和登录

  • 让 wp-config.php 只有其所有者可读(权限 600 或 640,取决于你的主机)。
  • 绝不要在网站根目录中留下 wp-config.php.bak、.old 或 .zip 副本。
  • 为管理员账户启用双重验证并限制登录尝试次数。
  • 在生产环境中保持 WP_DEBUG_DISPLAY 关闭,让错误永远不会显示在屏幕上。

参考资料

相关指南

免费 · 即时 · 无需注册

抢在别人之前了解你的评级。

被动扫描。未经你的许可,不会进行任何攻击性检测。

免费开始。付费套餐每月 12 美元起,或 29 美元购买单次报告。 查看价格