如何通过phpMyAdmin清除SQL注入导致的WordPress wp_posts表恶意HTML?
定位并清除wp_posts表中的恶意隐藏HTML代码
1. 先定位受感染的记录
登录phpMyAdmin,选择你的WordPress数据库,打开SQL查询窗口,执行以下语句找出所有包含恶意代码的文章:
SELECT ID, post_title, post_content FROM wp_posts WHERE post_content REGEXP '<div style="overflow:hidden;height:1px;">.*?</div>';
该语句会返回被感染文章的ID、标题及内容,帮你确认攻击范围。
2. 批量清除恶意代码
方法一(MySQL 8.0及以上版本适用)
执行以下UPDATE语句,直接替换掉所有匹配的恶意代码段:
UPDATE wp_posts SET post_content = REGEXP_REPLACE(post_content, '<div style="overflow:hidden;height:1px;">.*?</div>', '') WHERE post_content REGEXP '<div style="overflow:hidden;height:1px;">.*?</div>';
方法二(MySQL 8.0以下版本适用)
如果你的MySQL版本不支持REGEXP_REPLACE,可以用字符串截取的方式清除:
UPDATE wp_posts SET post_content = CONCAT( SUBSTRING_INDEX(post_content, '<div style="overflow:hidden;height:1px;">', 1), SUBSTRING_INDEX(post_content, '</div>', -1) ) WHERE post_content LIKE '%<div style="overflow:hidden;height:1px;">%';
注意:如果单篇文章存在多段恶意代码,需要重复执行该语句,直到没有匹配的记录为止。
关键注意事项
- 执行更新前必须备份数据库,避免操作失误导致数据丢失。
- 清除完成后,再次运行第一步的SELECT语句,确认恶意代码已全部移除。
- 务必修复SQL注入漏洞:及时更新WordPress核心、主题和插件;限制数据库账号权限(避免给予全局权限);检查自定义代码是否存在未过滤用户输入的情况;启用安全防护插件加强网站安全。
内容的提问来源于stack exchange,提问作者faia20
相关产品推荐
相关产品推荐

