如何通过修改数据表前缀来提高WordPress的安全性

WordPress的数据库对于WordPress网站来说就像人的大脑一样,重要性不言而喻。因为网站所有的信息都是存在那里面的,所以也成为了黑客攻击的重要目标。黑客会运行一些自动的代码去执行SQL注入攻击。不幸的是,许多人在安装WordPress的时候忘记去修改数据表前缀了,这就给了黑客机会可以通过默认的前缀 wp_ 对数据库进行大量的攻击。保护你的数据库最好的方法就是在安装WordPress的时候将数据表名的前缀,这很简单。但是如果你的网站已经在运行中了,那么修改数据表前缀就会稍微麻烦一些了。

准备工作

我们推荐你跟着本教程一起动手之前,先把网站的数据库进行备份。网站的日常备份非常重要,我们推荐使用BackupBuddy插件来进行自动化的备份。接下来,我们推荐你将网站暂时切换成维护状态

在wp-config.php中修改数据表前缀

打开WordPress网站根目录的wp-config.php文件,将表前缀从 wp_ 改成其他的,比如 wp_a123456_。

那么这行代码看起来就是这样的:

$table_prefix = 'wp_a123456_';

注意:表前缀只能由数字、字母和下划线组成。

修改所有数据库表名

你需要登录数据库(一般通过phpMyAdmin登录),然后把表名的前缀改成我们刚刚在wp-config.php里定义的。如果你使用的是带cPanel的WordPress主机,那么你可以在cPanel里找到phpMyAdmin的链接。

WordPress默认的表一共有12个,手动一个一个修改的话会比较麻烦。

所以,为了让工作进行的更快更有效率,我们提供了一个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`;

如果你安装的其他插件也在数据库里创建了数据表,那就把这些表都添加进去。我们的宗旨是把所有数据表的前缀都改掉。

Options表

我们需要查询一下 options 表看看有哪些字段使用了wp_作为前缀,然后将它们都替换掉。为了方便查询,使用下面的查询语句:

SELECT * FROM `wp_a123456_options` WHERE `option_name` LIKE '%wp_%'

你会看到返回了很多条结果,把结果中的wp_一个一个修改掉。

UserMeta表

接下来,我们需要在usermeta表中查询哪些字段使用了wp_作为前缀,然后进行替换。使用下面的SQL语句进行查询:

SELECT * FROM `wp_a123456_usermeta` WHERE `meta_key` LIKE '%wp_%'

根据你安装的插件数量不同,返回的查询结果数量也不同。挨个把wp_改成新的前缀。

备份&完成

现在你就可以准备测试网站了。如果你按照上面的步骤都做对了,那么网站应该运行良好,没有任何问题。然后对数据库做个备份,以防万一。

为您推荐

发表评论

邮箱地址不会被公开。 必填项已用*标注