我遇到了问题,导致某些恶意软件进入我的网站。我想从1个查询中删除DB中的所有恶意软件代码。我相信这是可能的。
我无法删除所有行,恶意软件在每个页面/文章/图库/ ...标题中添加了一些代码。所以我想保留文章的原始标题。我希望这是可能的。
例如:
CGPoint(x: 1, y: 2)
我需要playButton.position = CGPoint(x: 0, y: 0) //or CGPoint.zero or nothing at all since by default it will get placed in the center
playButton.zPosition = 1
self.addChild(playButton)
ground.position = CGPoint(x: 0, y: 0 - self.size.height / 2 + ground.size.height / 2)
ground.zPosition = 1
self.addChild(ground)
保留在数据库中。
我怎么能一次通过所有数据库做到这一点?
答案 0 :(得分:1)
您可以使用string functions执行此操作。
这是一个演示:
mysql> SET @t = 'See <script src="...">...</script>About us';
mysql> SELECT CONCAT(
SUBSTRING(@t, 1, LOCATE('<script ', @t)-1),
SUBSTRING(@t, LOCATE('</script>', @t)+LENGTH('</script>'))) AS newstring;
+--------------+
| newstring |
+--------------+
| See About us |
+--------------+
这假定脚本标记仅在每个字符串中出现一次。
然后你必须使用UPDATE一次更正数据,一列和一个表:
UPDATE MyTable
SET MyStringColumn = CONCAT(
SUBSTRING(MyStringColumn, 1, LOCATE('<script ', MyStringColumn)-1),
SUBSTRING(MyStringColumn, LOCATE('</script>', MyStringColumn)+LENGTH('</script>')));
如果要同时执行所有表和所有列,则另一种解决方案是将数据库转储到文本文件,并使用文本编辑器进行全局搜索和替换。
$ mysqldump mydatabase > mydatabase.sql
$ vim mydatabase.sql
:%s/<script src=.*<\/script>//g
$ mysql mydatabase < mydatabase.sql
当然,转储和恢复之间更改的任何数据都将被覆盖。
如果您无法暂停对数据库的更改,则必须使用UPDATE解决方案来就地更改数据。