专注于外贸建站,分享WordPress教程和Elementor教程

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

更新日期:2024-02-19
同系列教程
加入读者学习群
我用的页面编辑器
让我的客户网站GTmetrix测分A\A的主机Cloudways
独家优惠前3个月7折, 戳上方按钮注册即可自动带入优惠码LOYSEO
所赠主题插件价值>$49
主机送Astra Pro不限站点1年
gmail.comsina.com邮箱,注册易通过
遇到问题,联系我
来开通 SEO工具20+

WordPress数据库是黑客最喜欢攻击的目标,许多人在安装WordPress时忘记更改数据库前缀,采用的是默认前缀wp_,这使黑客很容易进行大规模攻击。保护数据库的最机智的办法就是更改​​数据库表前缀。

如果你还没GreenGeeks等国外的wordpress托管主机会在创建站点时,会设置随机的表前缀,无需你再修改,不过以防万一你也可以按下文的方法在wp-config.php文件中确认一下表前缀;而如果你是在服务器(譬如Linode、阿里云)上自己搭建的网站,并且已经建好了,那么,请按照下文的方法修改数据库表前缀。

准备工作

请在操作之前备份你的网站数据库,并选择网站在线用户少的时间段,修改期间,最好将网站开启维护模式,如果网站用户很少,也可以不用开启维护模式,整个修改过程大约在10分钟以内。

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

找到网站根目录中的wp-config.php文件并编辑它,在文件中找到下一段中所示的代码行,将其中的表前缀从wp_更改为自定义内容(由字母、数字和短下划线构成),譬如:a1b2c3_

$table_prefix = 'wp_';

修改后的示例:

$table_prefix = 'a1b2c3_';

更改所有数据库表的前缀名称

在网站的运维面板(譬如Cpanel、宝塔)中,找到database或数据库相关的栏目,进入数据库的管理面板,如果有phpMyAdmin功能入口,就使用phpMyAdmin访问你的数据库,然后按下面的步骤,将表前缀更改为我们刚才在wp-config.php文件中的新的表前缀

  1. 单击左侧菜单中的数据库名称以展开所有表。
  2. 在右侧,全选所有以wp_开头的表
  3. 单击with selected,在下拉菜单中选择replace table prefix
  4. 在“From”字段中输入wp_,在“ To”字段中输入新的表前缀,在本示例中为a1b2c3。
  5. 单击continue进行更改,修改完成后刷新当前页面。
table-prefix-database.png

修改options表

请在左侧菜单中的搜索框内输入options并回车,找到options表,在本示例中,数据表名称为a1b2c3_options,我们需要找到本表的options_name一列中使用了wp_作为前缀的行,以便我们将其中的wp_替换成新的前缀,请点击页面中表格右上方的[edit line],然后将代码WHERE `option_name` LIKE ‘%wp_%’黏贴到已有的代码之后,如果按照本文示例,黏贴完成后将是如下效果,然后点击Go按钮执行搜索

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

搜索后将看到一条记录,其中option_name是wp_user_roles,请双击对应单元格后修改,修改完成后将是 新前缀_user_roles,譬如本示例中是:a1b2c3_user_roles。

如果你的站点时wordpress多站点,你将可能不止1个option表,记得每个options表都需要修改。

修改UserMeta表

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

请在左侧菜单中的搜索框内输入usermeta并回车,找到usermeta表,在本示例中,数据表名称为a1b2c3_usermeta,我们需要找到本表的meta_key一列中使用了wp_作为前缀的行,以便我们将其中的wp_替换成新的前缀,请点击页面中表格右上方的[edit line],然后将代码WHERE `meta_key` LIKE ‘%wp_%’黏贴到已有的代码之后,如果按照本文示例,黏贴完成后将是如下效果,然后点击Go按钮执行搜索

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

搜索后将看到多条记录,并且不同网站根据插件安装的不同而不同,请逐一将meta_key中的wp_前缀换为新前缀,但要注意的是,要仔细区别meta_key的含义,譬如:若你安装了wp rocket插件,则会看到一条包含wp_rocket的记录,则此处的wp_不需要修改。如果看到的是wp-而不是wp_,那么也不需要修改。

测试站点

至此,你可以测试网站了,使用新浏览器或无痕模式的浏览器,逐一打开网页前台和后台,进行多次访问和操作,如若正常,则说明修改成功。如若不正常,又无法界定问题所在,请先恢复数据库备份以及wp-config.php文件中的表前缀,确保网站可以访问,然后可以通过复制站点的方式去排查问题所在。

结语:我通过上文教程成功修改了多个网站,有简单的站点、也有复杂的站点,感谢如下教程给予我的帮助:

点赞
0 / 5 5

Your page rank:

外贸建站技术姐Bonnie
外贸建站技术姐Bonnie

Bonnie是LOYSEO的创始人,在建站领域有着超过14年的经验,热爱能将想法变为现实的WordPress,更是Elementor的忠实用户~

发表回复

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

让我的客户网站GTmetrix测分A\A的主机Cloudways
独家优惠前3个月7折, 戳上方按钮注册即可自动带入优惠码LOYSEO
所赠主题插件价值>$49
主机送Astra Pro不限站点1年
gmail.comsina.com邮箱,注册易通过
遇到问题,联系我
来开通 SEO工具20+