替换任何以%结尾的字符串

时间:2019-04-03 17:31:01

标签: mysql wordpress

我正在使用Phpmyadmin 4.7.3运行MYSQL v.5.6,并且我的一个站点已被黑客入侵,我想删除文章(post_content)中注入的文本。

模式如下:

<script type="text/javascript">SOME NASTY CODE</script>
<p id="alreadyXXXX"> SOME NASTY TEXT </p>
<p><script type="text/javascript">SOME NASTY CODE</script></p>

其中X符号显示随机数

我尝试了数百种不同的语法,例如

UPDATE wp_posts SET post_content = REPLACE ( post_content, '<script%>%</script>', '' );

UPDATE wp_posts SET post_content = REPLACE ( post_content, '<p id="already%>%</p>', '' );

但是我不知道确切的语法

我想从我的文章(脚本和p)中删除所有这些讨厌的元素。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用以下查询来提取脚本标记之前和之后的部分。这是一个SELECT查询,可让您检查结果...它不会更新数据:

SELECT post_content, CONCAT(
    SUBSTRING_INDEX(post_content, '<script ', 1),
    SUBSTRING_INDEX(post_content, '</script></p>', -1)
)
FROM wp_posts
WHERE post_content LIKE '%<script %</script></p>%' -- process bad rows only