项目用discuz做的,遇到被人攻击导致数据库跳转到BC网站,查找了下原因是被人加了跳转的html代码
<meta http-equiv="refresh" content="0; url=http://tiaozhuanweb.com">[b][url] [img] www.tiaozhuanweb1.com [/img] [size=6][color=Red]手机可投oooooooooooo[/color][/size] [/url][/b]
每个跳转的网站还都不一样,具体截图如下
那么怎么实现替换这些不需要的信息呢,首先原理是,笔者网站做了安全过滤,网友测试的时候把11去掉
UPDATE11 pre_forum_post SET message = replace ('message','refresh','111111111') WHERE message LIKE '%refresh%'
然后在这个基础上进行扩展,观察他的规则,运行了下
update11 pre_forum_post set message = REPLACE(message, REPLACE(message, substring(message, LOCATE('<meta http-equiv',message), LOCATE('提现即时[/color][/size] [/url][/b]',message) - LOCATE('<meta http-equiv',message) + 37), ''), '') WHERE message LIKE '%提现即时%';
受影响的几万条,好像是成功了。线上跑了一遍不行。继续改
update11 pre_forum_post set message = REPLACE(message, substring(message, LOCATE('<meta http-equiv',message), LOCATE('提现即时[/color][/size] [/url][/b]',message) - LOCATE('<meta http-equiv',message) + 37), '') WHERE message LIKE '%提现即时C%';
这条测试ok
这条sql很有含量,值得多去琢磨琢磨