问题如下百度搜索时网站标题被篡改:请使用正版授权-盗版主题后果自负-授权购买官网,这问题主要会在ritheme主题上,88531资享网也中招了好几次,导致百度收录下降,主题查找了也没到好方法经过对数据库入手解决该问题。

在 MySQL 数据库中,可以通过创建触发器来禁止修改wp_options 表中的blogname 字段。触发器会在更新操作之前或之后执行,我们可以利用BEFORE UPDATE 触发器来检查并阻止对 blogname 字段的修改。主要目的防止 wordpress 一些主题后门主题篡改网站标题,导致网站标题显示盗版文字。

20250317013125950

以下是详细的步骤和代码:注意用管理账号进入phpmyadmin操作,在Navicat 中操作或者宝塔打开数据操作时会提示权限不足

SQL框内执行即可

20250317013934424

再来测试后台设置标题修改保存,保存后依然是原来的标题

以下为参考,只需要操作以上面步骤即可


1. 确认wp_options 表结构

在 WordPress 中,wp_options 表的结构如下:

列名 类型 描述
option_id bigint(20) 选项 ID(主键)
option_name varchar(191) 选项名称(如blogname)
option_value longtext 选项值(如网站标题)
autoload varchar(20) 是否自动加载

我们需要针对option_name 为blogname 的行,禁止修改option_value 字段。


2. 创建触发器

以下是创建触发器的 SQL 语句:

DELIMITER $$

CREATE TRIGGER prevent_blogname_update
BEFORE UPDATE ON wp_options
FOR EACH ROW
BEGIN
— 检查是否是 blogname 字段
IF OLD.option_name = ‘blogname’ AND OLD.option_value != NEW.option_value THEN
SIGNAL SQLSTATE ‘45000’
SET MESSAGE_TEXT = ‘修改 blogname 字段被禁止’;
END IF;
END$$

DELIMITER ;

说明:

  1. 触发器名称:prevent_blogname_update。
  2. 触发时机:BEFORE UPDATE,在更新操作之前触发。
  3. 检查条件
    • OLD.option_name = ‘blogname’:确保操作的是blogname 字段。
    • OLD.option_value != NEW.option_value:确保option_value 字段的值被修改。
  4. 阻止操作
    • 如果满足条件,使用SIGNAL 抛出错误,阻止更新操作。
    • 错误代码45000 是自定义错误代码,MESSAGE_TEXT 是错误提示信息。

3. 测试触发器

创建触发器后,可以尝试修改blogname 字段的值,验证触发器是否生效。

测试 SQL:

UPDATE wp_options

SET option_value = ‘新标题’
WHERE option_name = ‘blogname’;

预期结果:

  • 如果触发器生效,执行上述 SQL 时会抛出错误:复制

    ERROR 1644 (45000): 修改 blogname 字段被禁止

  • 如果修改其他字段(如siteurl),则不会触发错误。

4. 删除触发器

如果需要取消触发器的限制,可以使用以下 SQL 删除触发器:

DROP TRIGGER IF EXISTS prevent_blogname_update;


5. 注意事项

  1. 备份数据库
    • 在创建触发器之前,建议备份数据库,以防操作失误。
  2. 权限要求
    • 创建触发器需要数据库用户具有TRIGGER 权限。
  3. 直接修改数据库
    • 触发器只能阻止通过 SQL 语句修改blogname 字段。如果通过其他方式(如 PHPMyAdmin 或直接修改数据库文件)修改,触发器不会生效。
  4. WordPress 多站点
    • 如果使用 WordPress 多站点(Multisite),wp_options 表可能为wp_X_options(X 为站点 ID),需要根据实际情况调整表名。

6. 扩展:禁止插入或删除blogname 字段

如果需要更严格的限制,可以创建额外的触发器,禁止插入或删除blogname 字段。

禁止插入:

DELIMITER $$

CREATE TRIGGER prevent_blogname_insert
BEFORE INSERT ON wp_options
FOR EACH ROW
BEGIN
IF NEW.option_name = ‘blogname’ THEN
SIGNAL SQLSTATE ‘45000’
SET MESSAGE_TEXT = ‘插入 blogname 字段被禁止’;
END IF;
END$$

DELIMITER ;

禁止删除:

DELIMITER $$

CREATE TRIGGER prevent_blogname_delete
BEFORE DELETE ON wp_options
FOR EACH ROW
BEGIN
IF OLD.option_name = ‘blogname’ THEN
SIGNAL SQLSTATE ‘45000’
SET MESSAGE_TEXT = ‘删除 blogname 字段被禁止’;
END IF;
END$$

DELIMITER ;


通过创建BEFORE UPDATE 触发器,可以有效地禁止修改wp_options 表中的blogname 字段。这种方法适用于需要严格保护网站标题的场景。如果需要更全面的保护,可以结合禁止插入和删除的触发器来实现。

好了,88531资享网就为大家介绍到这了,还有问题请留言!

https://www.88531.cn/?p=43850


新软师兄 » wordpress ripro主题 防止篡改网站标题 通过禁止修改 wp_options 表中的 blogname 字段实现唯一能解决的方法
50T免费网盘资源大集合【持续更中~~~~】:点击查看

dase kand pornhan.mobi xvideo desi gay pcso 2pm result today pinoytvfriends.com where i can watch bad romeo كلام فى النيك wfporn.com قصص محارم حديثة busporn porngugu.mobi indian sexx vedios sex ka video noticieroporno.com himachal pradesh sex com
nero hentai hentaitgp.com ламия хентай www.mom xxx.com alohaporn.me sahara knite mature fucking tubepatrolporn.com bhabi sex indian girl sex gotporn.mobi xnxx family strocks ang probinsyano july 20 2022 full episode youtube pilipinoteleserye.com ano ang pambansang sasakyan ng pilipinas
احلي سكس محارم pornxporn.org نيك فلاحى multi.xnxx alohaporn.net telugu sex chart سكس قصيرات arabysexy.org نيك نقاب www assames sex com umora.info desi sexy bhabi 8teenx bukaporn.com india hot sex videos