如何更改 WordPress 数据库前缀以提高安全性

WordPress 数据库就像您的整个 WordPress 网站的大脑,因为每条信息都存储在其中,因此使其成为黑客最喜欢的目标。垃圾邮件发送者和黑客为 SQL 注入运行自动化代码。好吧,不幸的是,许多人在安装 WordPress时忘记更改数据库前缀。这使黑客更容易通过针对默认前缀wp_来计划大规模攻击。保护数据库的最聪明的方法是更改​​数据库前缀,这在您正在设置的站点上非常容易做到。但是需要几个步骤才能为您已建立的站点正确更改 WordPress 数据库前缀,而不会完全搞砸它。

视频教程

订阅 WPBeginner

如果您不喜欢该视频或需要更多说明,请继续阅读。

准备

我们建议您在执行本教程中建议的任何操作之前备份您的 WordPress 数据库。保持网站的每日备份很重要,我们建议使用BackupBuddy插件来做到这一点。接下来我们建议您将访问者重定向到临时维护页面。

更改 wp-config.php 中的表前缀

打开位于 WordPress 根目录中的 wp-config.php 文件。将表前缀行从wp_更改为类似wp_a123456_的其他内容

所以这条线看起来像这样:

$table_prefix  = ‘wp_a123456_’;

注意:您只能将其更改为数字、字母和下划线。

更改所有数据库表名称

您需要访问您的数据库(很可能通过 phpMyAdmin),然后将表名更改为我们在 wp-config.php 文件中指定的名称。如果您使用的是cPanel WordPress 托管,那么您可以在您的 cPanel 中找到 phpMyAdmin 链接。看下图:

phpMyAdmin

共有 11 个默认 WordPress 表,因此手动更改它们会很痛苦。

SQL 查询

这就是为什么要让事情变得更快,我们有一个您可以使用的 SQL 查询。

RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;RENAME table `wp_comments` TO `wp_a123456_comments`;RENAME table `wp_links` TO `wp_a123456_links`;RENAME table `wp_options` TO `wp_a123456_options`;RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;RENAME table `wp_posts` TO `wp_a123456_posts`;RENAME table `wp_terms` TO `wp_a123456_terms`;RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;RENAME table `wp_users` TO `wp_a123456_users`;

您可能必须为可能在 WordPress 数据库中添加自己的表的其他插件添加行。这个想法是您将所有表前缀更改为您想要的前缀。

选项表

我们需要在选项表中搜索使用 wp_ 作为前缀的任何其他字段,以便我们可以替换它们。要简化此过程,请使用以下查询:

SELECT * FROM `wp_a123456_options` WHERE `option_name` LIKE ‘%wp_%’

这会返回很多结果,你需要一一去改变这些行。

用户元表

接下来,我们需要在 usermeta 中搜索所有使用 wp_ 作为前缀的字段,以便我们可以替换它。为此使用此 SQL 查询:

SELECT * FROM `wp_a123456_usermeta` WHERE `meta_key` LIKE ‘%wp_%’

条目数可能因您使用的插件数量等而异。只需将具有 wp_ 的所有内容更改为新前缀即可。

备份并完成

您现在已准备好测试该站点。如果您按照上述步骤操作,那么一切都应该正常工作。现在,为了安全起见,您应该对数据库进行新备份。